1. #include"net.h"
    2. void usage(char *s)
    3. {
    4. printf("\nthis is udp\n");
    5. printf("\nusage:\n\t %s serv_ip serv_port",s);
    6. printf("\n\t serv_ip:udp server ip address");
    7. printf("\n\t serv_port:udp server port\n\n");
    8. }
    9. int main(int argc,char *argv[])
    10. {
    11. int fd = -1;
    12. int port = SERV_PORT;
    13. port = atoi(argv[2]);
    14. if(port < 0 || (port > 0 && port <= 5000))
    15. {
    16. usage(argv[0]);
    17. exit(1);
    18. }
    19. struct sockaddr_in sin;
    20. if(argc != 3)
    21. {
    22. usage(argv[0]);
    23. exit(1);
    24. }
    25. //1
    26. if((fd = socket(AF_INET,SOCK_DGRAM,0)) < 0)
    27. {
    28. perror("socket");
    29. exit(1);
    30. }
    31. sin.sin_family = AF_INET;
    32. sin.sin_port = htons (SERV_PORT);
    33. if (inet_pton (AF_INET, argv[1], (void *) &sin.sin_addr) != 1) {
    34. perror ("inet_pton");
    35. exit (1);
    36. }
    37. printf("udp client starting...ok\n");
    38. char buf[BUFSIZ];
    39. while(1)
    40. {
    41. bzero(buf,BUFSIZ);
    42. if(fgets(buf,BUFSIZ-1,stdin) == NULL)
    43. {
    44. perror("fgets");
    45. continue;
    46. }
    47. sendto(fd,buf,strlen(buf),0,(struct sockaddr *)&sin,sizeof(sin));
    48. if (!strncasecmp (buf, QUIT_STR, strlen (QUIT_STR)))
    49. {
    50. printf ("Client is exiting!\n");
    51. break;
    52. }
    53. }
    54. close(fd);
    55. return 0;
    56. }