#include"net.h"
void usage(char *s)
{
printf("\nthis is udp\n");
printf("\nusage:\n\t %s serv_ip serv_port",s);
printf("\n\t serv_ip:udp server ip address");
printf("\n\t serv_port:udp server port\n\n");
}
int main(int argc,char *argv[])
{
int fd = -1;
int port = SERV_PORT;
port = atoi(argv[2]);
if(port < 0 || (port > 0 && port <= 5000))
{
usage(argv[0]);
exit(1);
}
struct sockaddr_in sin;
if(argc != 3)
{
usage(argv[0]);
exit(1);
}
//1
if((fd = socket(AF_INET,SOCK_DGRAM,0)) < 0)
{
perror("socket");
exit(1);
}
sin.sin_family = AF_INET;
sin.sin_port = htons (SERV_PORT);
if (inet_pton (AF_INET, argv[1], (void *) &sin.sin_addr) != 1) {
perror ("inet_pton");
exit (1);
}
printf("udp client starting...ok\n");
char buf[BUFSIZ];
while(1)
{
bzero(buf,BUFSIZ);
if(fgets(buf,BUFSIZ-1,stdin) == NULL)
{
perror("fgets");
continue;
}
sendto(fd,buf,strlen(buf),0,(struct sockaddr *)&sin,sizeof(sin));
if (!strncasecmp (buf, QUIT_STR, strlen (QUIT_STR)))
{
printf ("Client is exiting!\n");
break;
}
}
close(fd);
return 0;
}