test2.c 787 B

123456789101112131415161718192021222324252627282930313233
  1. #include "unp.h"
  2. int
  3. main(int argc, char **argv)
  4. {
  5. int sockfd, n;
  6. char recvline[MAXLINE + 1];
  7. socklen_t salen;
  8. struct sockaddr *sa, *sabind;
  9. if (argc != 3)
  10. err_quit("usage: test2 <hostname/IPaddress> <service/port#>");
  11. sockfd = Udp_client(argv[1], argv[2], (void **) &sa, &salen);
  12. /* Same as daytimeudpcli1, but we explicitly bind the wildcard */
  13. sabind = Malloc(salen);
  14. bzero(sabind, salen);
  15. sabind->sa_family = sa->sa_family;
  16. Bind(sockfd, sabind, salen);
  17. printf("bound %s\n", Sock_ntop(sabind, salen));
  18. printf("sending to %s\n", Sock_ntop_host(sa, salen));
  19. Sendto(sockfd, "", 1, 0, sa, salen); /* send 1-byte datagram */
  20. n = Recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL);
  21. recvline[n] = 0; /* null terminate */
  22. Fputs(recvline, stdout);
  23. exit(0);
  24. }