udpcli05.c 666 B

1234567891011121314151617181920212223242526272829
  1. #include "unp.h"
  2. int
  3. main(int argc, char **argv)
  4. {
  5. int sockfd;
  6. struct sockaddr_in servaddr;
  7. if (argc != 2)
  8. err_quit("usage: udpcli <IPaddress>");
  9. bzero(&servaddr, sizeof(servaddr));
  10. servaddr.sin_family = AF_INET;
  11. servaddr.sin_port = htons(SERV_PORT);
  12. Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
  13. sockfd = Socket(AF_INET, SOCK_DGRAM, 0);
  14. bzero(&cliaddr, sizeof(cliaddr));
  15. cliaddr.sin_family = AF_INET;
  16. cliaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  17. cliaddr.sin_port = htons(0); /* force assignment of ephemeral port */
  18. Bind(sockfd, (SA *) &cliaddr, sizeof(cliaddr));
  19. dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));
  20. exit(0);
  21. }