Exemple #1
0
int main(int argc, char* argv[])
{
    struct sigaction action;
    action.sa_handler = handle_pipe;
    sigemptyset(&action.sa_mask);
    action.sa_flags = 0;
    sigaction(SIGPIPE, &action, NULL);


    int sockconn;
    struct sockaddr_in servaddr;
    if ((sockconn = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
    {
        perror("socket failure");
        exit(EXIT_FAILURE);
    }

    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(8888);
	if (argv[1] == NULL)
	{
		argv[1] = "127.0.0.1";
	}
	if (inet_aton(argv[1], &servaddr.sin_addr) == 0)
	{
		perror("inet_aton error");
		exit(EXIT_FAILURE);
	}
	dg_cli(stdin, sockconn, (struct sockaddr*)&servaddr, sizeof(servaddr));

	close(sockconn); // 这里即使不close,在进程关闭的时候,仍然会会关闭
	return 0;
}
Exemple #2
0
	}
	if(msgctl(msgid,IPC_RMID,0)==-1)
	{	
		perror("msgid rm bad");
		exit(1);
	}	
	printf("over\n");
}

int main(int  argc, char* argv[])
{
	int socketfd,res;
	int server_len,client_len;
	struct sockaddr_in server_address;
	struct sockaddr_in client_address;
	//struct sockaddr_in reply_address;
	int i,byte,n;
	
	
	socketfd=socket(AF_INET,SOCK_DGRAM,0);
	
	client_address.sin_family=AF_INET;
	client_address.sin_addr.s_addr=inet_addr("127.0.0.1");
	client_address.sin_port=htons(1234);	
	client_len=sizeof(server_address);
	
	bind(socketfd,(struct sockaddr *)&client_address,client_len);

	server_address.sin_family=AF_INET;
	server_address.sin_addr.s_addr=inet_addr("192.168.126.129");
	server_address.sin_port=htons(4321);	
	server_len=sizeof(server_address);
Exemple #3
0
int
main(int argc, char **argv)
{
	int					sockfd;
	struct sockaddr_in	servaddr;
	int ret;

	if (argc != 2) {
		fprintf(stderr, "usage: udpcli01 <IPaddress>\n");
		exit(1);
	}

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(13);		/* standard daytime server */
	if ((ret = inet_pton(AF_INET, argv[1], &servaddr.sin_addr)) < 0) {
		fprintf(stderr, "inet_pton error for %s: %s\n",
			argv[1], strerror(errno));	/* errno set */
		exit(1);
	} else if (ret == 0) {
		fprintf(stderr, "inet_pton error for %s\n", argv[1]);	/* errno not set */
		exit(1);
	}

	if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
		perror("socket error");
		exit(1);
	}

	dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));

	exit(0);
}
Exemple #4
0
int main(int argc, char **argv)
{
	int	sockfd;
	int	revcount;
	char	msg[MSG_LEN];
	int 	retval;
	struct sockaddr_in serveraddr;
	//struct sockaddr_in clientaddr;

	bzero(&serveraddr, sizeof(serveraddr));
	serveraddr.sin_family = AF_INET;
	inet_pton(AF_INET, "192.168.253.103", &serveraddr.sin_addr);
	serveraddr.sin_port = htons(SERV_PORT);

	sockfd = socket(AF_INET, SOCK_DGRAM, 0);
	if (sockfd < 0) {
		perror("socket");
		exit(1);
	} else {
		fprintf(stdout, "socket OK\n");
	}

	dg_cli(stdin, sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr));

	return 0;
}
Exemple #5
0
int main(int argc, char *argv[])
{
    int     sockfd;
    struct sockaddr_in servaddr;
    const int on = 1;

    if (argc != 2 && argc != 3)
        err_quit("Usage: udpcli <IPaddress> [broadcast_flag]");

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(SERV_PORT);
    /* convert string representation from command line to binary address in network order */
    inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

    sockfd = Socket(AF_INET, SOCK_DGRAM, 0);

    /*
     * If we use a broadcast address, we need to set SO_BROADCAST.
     * Otherwise, Linux will return EPERM on attempts to connect
     * or send via a socket.
     */

    if (argc == 3)
        setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));

    dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));

    return 0;
}
Exemple #6
0
int main(int argc, char const *argv[])
{
  struct sockaddr_in servcaddr;
  int sockfd;

  if (argc != 3)
  {
    fprintf(stderr, "usage: udpcli <addr> <port>\n");
    exit(1);
  }

  if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
  {
    perror("socket error");
    exit(1);
  }

  servcaddr.sin_family = AF_INET;
  servcaddr.sin_port = htons(atoi(argv[2]));

  if (inet_pton(AF_INET, argv[1], &servcaddr.sin_addr) < 0)
  {
    perror("inet_pton error");
    exit(1);
  }

  dg_cli(sockfd, &servcaddr, sizeof(servcaddr));
  return 0;
}
Exemple #7
0
int
main(int argc, char **argv)
{
	int					sockfd;
	struct sockaddr_in	servaddr;

	if (argc != 2)
		err_quit("usage: udpcli <IPaddress>");

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(SERV_PORT);
	Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

	sockfd = Socket(AF_INET, SOCK_DGRAM, 0);

	bzero(&cliaddr, sizeof(cliaddr));
	cliaddr.sin_family = AF_INET;
	cliaddr.sin_addr.s_addr = htonl(INADDR_ANY);
	cliaddr.sin_port = htons(0); /* force assignment of ephemeral port */
	Bind(sockfd, (SA *) &cliaddr, sizeof(cliaddr));

	dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));

	exit(0);
}
int
main(int argc, char **argv)
{
	int			sockfd;
	struct sockaddr_un	cliaddr, servaddr;
        
        if ( argc != 2)
		err_quit( "usage: unix_domain_cli1 <pathname>");

        /* Create IPC socket */
	sockfd = Socket( AF_LOCAL, SOCK_DGRAM, 0);

	bzero( &servaddr, sizeof(servaddr));
	servaddr.sun_family = AF_LOCAL;
	strncpy( servaddr.sun_path, argv[1], sizeof(servaddr.sun_path)-1);

	bzero( &cliaddr, sizeof(cliaddr));		/* bind an address for us */
	cliaddr.sun_family = AF_LOCAL;
	strcpy( cliaddr.sun_path, tmpnam(NULL));

	Bind( sockfd, (SA *) &cliaddr, sizeof(cliaddr));

	dg_cli( stdin, sockfd, (SA *) &servaddr, sizeof(servaddr)); /* do it all? */

	exit(0);
}
Exemple #9
0
int main(int argc, char *argv[], char ** environ) {

	do_opts (argc, argv, environ);

	int                   sockfd;
	struct sockaddr_in    cli_addr, serv_addr;

	//Zero out socket address
	memset(&serv_addr, 0, sizeof(serv_addr));

	//The address is ipv4
	serv_addr.sin_family       = AF_INET;

	// fill in the structure "serv_addr" with the address of the server 
	// that we want to send to
	// ip_v4 adresses is a uint32_t, convert a string representation of the octets 
	// to the appropriate value
	serv_addr.sin_addr.s_addr  = inet_addr(globalArgs.serverip);
	serv_addr.sin_port         = htons(globalArgs.port);

	// open UDP socket (an internet datagram socket)
	if ( (sockfd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
		printf("client: can't open datagram socket to %s:%d\n", 
			globalArgs.serverip, globalArgs.port);
	}
	else {
		if (globalArgs.verbose) {
			printf("client: OK opened datagram socket to %s:%d\n",
				globalArgs.serverip, globalArgs.port);
		}
	}

	// bind any local address for us
	//bzero((char *) &cli_addr, sizeof(cli_addr));  // zero out
	cli_addr.sin_family        = AF_INET;
	cli_addr.sin_addr.s_addr   = htonl(INADDR_ANY);
	cli_addr.sin_port          = htons(0);
	if (bind(sockfd, (struct sockaddr *) &cli_addr, sizeof(cli_addr)) < 0) {
			printf("client: FAIL bind to %s:%d\n", globalArgs.serverip, globalArgs.port);
	}
	else {
		if (globalArgs.verbose) {
			printf("client: OK bind to %s:%d\n", globalArgs.serverip, globalArgs.port);
		}
	}

	// print output
	// now go sit in this command until program exit
	dg_cli(stdin, sockfd, (struct sockaddr *) &serv_addr, (socklen_t) sizeof(serv_addr));

	close(sockfd);
	return 0;
	
}
Exemple #10
0
int main(int argc, char** argv)
{
    argCheck(argc, argv);
    int serverport = atoi(argv[2]);
    int clientfd = socket(AF_INET, SOCK_DGRAM, 0);
    struct sockaddr_in serveraddr, clientaddr;

    serveraddr.sin_family = AF_INET;
    inet_pton(AF_INET, argv[1], &serveraddr.sin_addr);
    serveraddr.sin_port = htons(serverport);

    dg_cli(stdin, clientfd, (struct sockaddr*)&serveraddr, sizeof(serveraddr));
}
Exemple #11
0
int main(int argc, char **argv)
{
  int sockfd;
  struct sockaddr_in srvaddr;
  bzero(&srvaddr, sizeof(srvaddr));
  srvaddr.sin_family = AF_INET;
  srvaddr.sin_port = htons(7777);
  inet_pton(AF_INET, argv[1], &srvaddr.sin_addr);
  sockfd = socket(AF_INET, SOCK_DGRAM, 0);
  //  bind(sockfd, (struct sockaddr*)&srvaddr, sizeof (srvaddr));

  dg_cli(stdin, sockfd, (struct sockaddr*)&srvaddr, sizeof (srvaddr));
  return 0;
}
int
main(int argc, char **argv)
{
	int					sockfd;
	socklen_t			salen;
	struct sockaddr		*sa;

	if (argc != 3)
		err_quit("usage: udpcli01 <hostname> <service>");

	sockfd = Udp_client(argv[1], argv[2], (void **) &sa, &salen);

	dg_cli(stdin, sockfd, sa, salen);

	exit(0);
}
Exemple #13
0
int main(int argc, char **argv) {
  int sockfd;
  struct sockaddr_in servaddr;
  
  if (argc != 2)
    err_exit("usage: udpcli <IPaddress>");
  
  bzero(&servaddr, sizeof(servaddr));
  //memset(&servaddr, 0, sizeof(servaddr));
  servaddr.sin_family = AF_INET;
  servaddr.sin_port = htons(SERV_PORT); //SERV_PORT
  Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
  sockfd = Socket(AF_INET, SOCK_DGRAM, 0);
  dg_cli(stdin, sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr));
  exit(0);
}
int main(int argc,char ** argv){



   int sockfd;

   struct sockaddr_in servaddr;

   

   if(argc != 3){

      printf("Enter <IP> <port number>\n");

      return 0;

   }

   

   if( (sockfd = socket(AF_INET,SOCK_DGRAM,0)) < 0){

      printf("Socket creation is wrong\n");

      return 0;

   }



   memset(&servaddr,0,sizeof(servaddr));

   servaddr.sin_family = AF_INET;

   servaddr.sin_port = htons(atoi(argv[2]));

   servaddr.sin_addr.s_addr = inet_addr(argv[1]);

 

   dg_cli(sockfd,(const struct sockaddr*)&servaddr,sizeof(servaddr));



  return 0;

}
Exemple #15
0
int main(int argc, char** argv)
{
    int sockfd;
    struct sockaddr_in servaddr;

    if (argc != 2) err_quit("usage: udpcli01 <IPaddress>");

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(13); /* standard daytime server */
    Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

    sockfd = Socket(AF_INET, SOCK_DGRAM, 0);

    dg_cli(stdin, sockfd, (SA*)&servaddr, sizeof(servaddr));

    exit(0);
}
Exemple #16
0
int main(int argc, char **argv)
{
	int					sockfd;
	struct sockaddr_in	servaddr;

	if (argc != 2)
		dbg_printf("usage: udpcli <IPaddress>\n");

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(9877);
	netlib_sock_pton(argv[1],(struct  sockaddr *)&servaddr);
	sockfd = socket(AF_INET, SOCK_DGRAM, 0);

	dg_cli(stdin, sockfd, (struct  sockaddr *) &servaddr, sizeof(servaddr));

	exit(0);
}
Exemple #17
0
int
main(int argc, char** argv) {
	int sockfd;
	struct sockaddr_in servaddr;

	if (argc != 2)
		err_quit("usage:echocli IP");

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(SERV_PORT);
	Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
	
	sockfd = Socket(AF_INET, SOCK_DGRAM, 0);
	
	dg_cli(stdin, sockfd, (SA*)&servaddr, sizeof(servaddr));

	exit(0);
}
Exemple #18
0
int main(int argc, char *argv[])
{
  int sockfd;
  struct sockaddr_in servaddr;

  if(argc != 2)
    err_quit("usage:udpcli <IPaddress>");
  //把服务器地址填入套接字地址结构,该结构将传递给dg_cli函数,指明数据报将发往何处
  bzero(&servaddr, sizeof(servaddr));
  servaddr.sin_family = AF_INET;
  servaddr.sin_port = htons(SERV_PORT);
  Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
   //创建一个UDP套接字
  sockfd = Socket(AF_INET, SOCK_DGRAM, 0);
  //调用dg_cli
  dg_cli(stdin, sockfd, (SA*) &servaddr, sizeof(servaddr));

  exit(0);
}
int main(int argc, char *argv[])
{
	int sockfd ;
	struct sockaddr_in servaddr , cliaddr;

	if(argc != 2)
	{
		printf("usage : udpcli <IPAddress>\n");
		return 0;
	}
	bzero(&servaddr , sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(SERV_PORT);
	inet_pton(AF_INET , argv[1] , &servaddr.sin_addr);
	sockfd = socket(AF_INET , SOCK_DGRAM , 0);
	dg_cli(stdin , sockfd , (SA *) &servaddr , sizeof(servaddr));

	exit(0);
}
Exemple #20
0
int main (int argc, char *argv[])
{
	int sockfd;
	struct sockaddr_in servaddr;

	if (argc != 2)
	{
		wp_critical ("usage: %s <IPaddress>", argv[0]);
	}

	memset (&servaddr, 0, sizeof (servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons (2345);
	wp_inet_pton (AF_INET, argv[1], &servaddr.sin_addr);

	sockfd = wp_socket (AF_INET, SOCK_DGRAM, 0);
	dg_cli (stdin, sockfd, (struct sockaddr *)&servaddr, sizeof (servaddr));

	exit (0);
}
int main(int argc, char **argv)
{
	int sockfd;
	struct sockaddr_in servaddr;

	if(argc != 2)
		err_quit("usage: udpcli <IPaddress>");

	bzero(&servaddr, sizeof(servaddr));

	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(7);
	Inet_pton(AF_INET, argv[1],&servaddr.sin_addr);
	
	sockfd = Socket(AF_INET, SOCK_DGRAM, 0);

	dg_cli(stdin, sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr));

	return 0;
}
Exemple #22
0
int main(int argc, char **argv)
{
	int					sockfd;
	struct sockaddr_un	cliaddr, servaddr;

	sockfd = socket(AF_LOCAL, SOCK_DGRAM, 0);

	bzero(&cliaddr, sizeof(cliaddr));		/* bind an address for us */
	cliaddr.sun_family = AF_LOCAL;
	strcpy(cliaddr.sun_path, tmpnam(NULL));

	bind(sockfd, (struct sockaddr *) &cliaddr, sizeof(cliaddr));

	bzero(&servaddr, sizeof(servaddr));	/* fill in server's address */
	servaddr.sun_family = AF_LOCAL;
	strcpy(servaddr.sun_path, UNIXDG_PATH);

	dg_cli(stdin, sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));

	exit(0);
}
Exemple #23
0
int
main(int argc, char **argv)
{
	int				sockfd;
	socklen_t		salen;
	struct sockaddr	*cli, *serv;

	if (argc != 2)
		err_quit("usage: udpcli06 <IPaddress>");

	sockfd = Udp_client(argv[1], "daytime", (void **) &serv, &salen);

	cli = Malloc(salen);
	memcpy(cli, serv, salen);		/* copy socket address struct */
	sock_set_port(cli, salen, 0);	/* and set port to 0 */
	Bind(sockfd, cli, salen);

	dg_cli(stdin, sockfd, serv, salen);

	exit(0);
}
int main(int argc, char* argv[]) {

	int sockfd;
	struct sockaddr_in serv_addr;
	struct hostent* server;


	if (argc != 2) {
		printf("Usage: %s <IP/HOSTNAME>\n", argv[0]);
		exit(-1);
	}

	if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
		perror("socket");
		exit(-1);
	}


	server = gethostbyname(argv[1]);
	if (NULL == server) {
		perror("gethostbyname");
		exit(-1);
	}

	bzero((char*)&serv_addr, sizeof(serv_addr));
	serv_addr.sin_family = AF_INET;
	bcopy((char*)server->h_addr, (char*)&(serv_addr.sin_addr.s_addr), server->h_length);
	serv_addr.sin_port = htons(PORT);

	/*
	   bzero((void *)&serv_addr, sizeof(serv_addr));
	   serv_addr.sin_family = AF_INET;
	   serv_addr.sin_port = htons(PORT);
	   inet_pton(AF_INET, argv[1], &serv_addr.sin_addr);
	 */

	dg_cli(stdin, sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));

	exit(0);
}
int main(int argc, char **argv)
{
     int    sockfd = 0;
     struct sockaddr_in     servaddr;

     if (argc < 2)
     {
          err_quit("usage: ./a.out <IPaddress>");
     }

     bzero(&servaddr, sizeof(servaddr));
     servaddr.sin_family = AF_INET;
     servaddr.sin_port = htons(SERV_PORT); //将一个无符号短整型的主机数值转换为网络字节顺序
     my_inet_pton(AF_INET, MCAST_IP, &servaddr.sin_addr); //十进制IP转二进制

     //创建一个套接字
     sockfd = my_socket(AF_INET, SOCK_DGRAM, 0);

     dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));

     exit(0);
}
int
main(int argc, char **argv)
{
	int					sockfd;
	struct sockaddr_in	servaddr;

	if (argc != 2)
		err_quit("usage: udpcli <IPaddress>");

	bzero(&servaddr, sizeof(servaddr));
#ifdef	HAVE_SOCKADDR_SA_LEN
	servaddr.sin_len = sizeof(servaddr);
#endif
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(SERV_PORT);
	Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

	sockfd = Socket(AF_INET, SOCK_DGRAM, 0);

	dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));

	exit(0);
}
Exemple #27
0
int main(int argc, char **argv)
{
int	sockfd;
unsigned int	 len;
struct sockaddr_in	cliaddr, servaddr;
if (argc != 2)// err_quit("usage: udpcli <IPaddress>");
{
printf("usage: udpcli <IPaddress>\n");
exit(1);
}
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
//bzero(&servaddr, sizeof(servaddr));
memset(&servaddr, 0,sizeof(servaddr)); 
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERV_PORT);
inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
/*connect(sockfd, (SA *) &servaddr, sizeof(servaddr));
len = sizeof(cliaddr);
getsockname(sockfd, (SA *) &cliaddr, &len);
 printf("accept a new client,ip:%s and port is %d\n",inet_ntoa(cliaddr.sin_addr), ntohs(cliaddr.sin_port));
exit(0);*/
dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));
}
//Funcion start
int start_client(const u_short port, const char ip[], const char remoteFilename[], const char localFilename[]) {
	int socketf;
	socketf = newTCPClientSocket4(ip, port);
	int	sockfd;
	pid_t pid;
	struct sockaddr_in servaddr;

	//if (argc != 2) {
	//	puts("usage: cli <IPaddress>");
	//	exit(1);
	//}

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(6000);
	inet_pton(AF_INET, "192.168.1.255", &servaddr.sin_addr);

	sockfd = socket(AF_INET, SOCK_DGRAM, 0);
	

	if ((pid = fork()) == 0) { 
		dg_cli(stdin, sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));
		exit(0);
	}

	
	if(socketf == -1) {
		return 1;
	}
	
	start_protocol(socketf,remoteFilename,localFilename);
	closeTCPSocket(socketf);
	debug(2,"Close connection (%s:%u)",ip,port);
	sleep(2);
	return 0;
			
}
Exemple #29
0
int
main(int argc, char** argv)
{
    int         sockfd;
    struct sockaddr_in servaddr;

    if (argc != 3)
    {
        cerr<<"USAGE:./client serverip serverport"<<endl;
        return -1;
    }

    bzero(&servaddr, sizeof(servaddr));

    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(atoi(argv[2]));
    inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

    sockfd = socket(AF_INET, SOCK_DGRAM, 0);

    dg_cli(sockfd, (SA*) &servaddr, sizeof(servaddr));

    return 0;
}
Exemple #30
0
int main(int argc, char **argv) {
	int sockfd;
	struct sockaddr_in servaddr;
	int len,on=1;
	struct interface_info *head;
	struct sockaddr_in closest;
	generate_ifi_list(&head);
	int ret;

	//	if (argc != 2) //TODO Uncomment
	//		err_sys("usage: client <client.in file>");

	//Read input configuration from server.in
	char line[MAX_LINE];
	FILE* fp = fopen("client.in", "r"); //TODO read from argv[1]
	if (fgets(line, sizeof(line), fp)) {//Line 1 server ip
		len = strlen(line) - 1; //remove the trailing \n
		if (line[len] == '\n')
			line[len] = '\0';
		strcpy(serverIP, line);
		if (!isIPAddress(serverIP)) {
			err_sys_p("Invalid or missing server ip in the configuration file.");
		}
		printf("[INFO] Server ip:%s\n", serverIP);
	} else {
		err_sys_p("Invalid or missing input configuration.");
	}

	if (fgets(line, sizeof(line), fp)) {//Line 2 server port
		server_port = atoi(line);
		if (server_port == 0) {
			err_sys(
					"Invalid or missing server port number in the configuration file.");
		}
		printf("[INFO] Server port:%d\n", server_port);
	} else {
		err_sys_p("Invalid or missing input configuration.");
	}

	if (fgets(line, sizeof(line), fp)) {//Line 3 file name
		len = strlen(line) - 1; //remove the trailing \n
		if (line[len] == '\n')
			line[len] = '\0';
		strcpy(required_file_name, line);
		if (len == 0)
			err_sys("Invalid or missing file name in the configuration file.");
		printf("[INFO] File name:%s\n", required_file_name);
	} else {
		err_sys_p("Invalid or missing input configuration.");
	}

	if (fgets(line, sizeof(line), fp)) {//Line 4 maximum sliding window size.
		max_win_size = atoi(line);
		if (max_win_size == 0) {
			err_sys_p(
					"Invalid or missing Max win size in the configuration file.");
		}
		printf("[INFO] Max win size:%d\n", max_win_size);
	} else {
		err_sys_p("Invalid or missing input configuration.");
	}

	fclose(fp);

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(server_port);
	
	bzero(&closest, sizeof(closest));
	ret =closest_match_to_interface(head,serverIP,&closest.sin_addr); 

	//printf("[INFO] closest is %s\n",inet_ntoa(closest.sin_addr));
	cliaddr.sin_addr.s_addr = closest.sin_addr.s_addr;	
	sockfd = socket(AF_INET, SOCK_DGRAM, 0);
	if (sockfd < 0) {
		err_sys_p("Socket error.");
	}

	if(ret==1)
	{
		/**returned 1, we should use localhost for both server and client**/
		if (inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr) != 1)
		err_sys_p("Cannot convert string IP to binary IP.");

	}

	else if(ret==2)
	{
		/**then its on local n/w , use dont' route**/
		if(setsockopt(sockfd, SOL_SOCKET, SO_DONTROUTE, (void *) &on, sizeof(on)) < 0)
	    err_sys_p("Can't set SO_DONTROUTE on main socket"); 

		if (inet_pton(AF_INET, serverIP, &servaddr.sin_addr) != 1)
		err_sys_p("Cannot convert string IP to binary IP.");

	}

	else
	{
		if (inet_pton(AF_INET, serverIP, &servaddr.sin_addr) != 1)
		err_sys_p("Cannot convert string IP to binary IP.");

	}
	

	dg_cli(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));

	exit(0);
}