main.lc 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. #include "unp.h"## 1 ##src/mysdr/main.c##
  2. #define SAP_NAME "sap.mcast.net" /* default group name and port */## 2 ##src/mysdr/main.c##
  3. #define SAP_PORT "9875"## 3 ##src/mysdr/main.c##
  4. void loop(int, socklen_t);## 4 ##src/mysdr/main.c##
  5. int## 5 ##src/mysdr/main.c##
  6. main(int argc, char **argv)## 6 ##src/mysdr/main.c##
  7. {## 7 ##src/mysdr/main.c##
  8. int sockfd;## 8 ##src/mysdr/main.c##
  9. const int on = 1;## 9 ##src/mysdr/main.c##
  10. socklen_t salen;## 10 ##src/mysdr/main.c##
  11. struct sockaddr *sa;## 11 ##src/mysdr/main.c##
  12. if (argc == 1)## 12 ##src/mysdr/main.c##
  13. sockfd = Udp_client(SAP_NAME, SAP_PORT, (void **) &sa, &salen);## 13 ##src/mysdr/main.c##
  14. else if (argc == 4)## 14 ##src/mysdr/main.c##
  15. sockfd = Udp_client(argv[1], argv[2], (void **) &sa, &salen);## 15 ##src/mysdr/main.c##
  16. else## 16 ##src/mysdr/main.c##
  17. err_quit("usage: mysdr <mcast-addr> <port#> <interface-name>");## 17 ##src/mysdr/main.c##
  18. Setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));## 18 ##src/mysdr/main.c##
  19. Bind(sockfd, sa, salen);## 19 ##src/mysdr/main.c##
  20. Mcast_join(sockfd, sa, salen, (argc == 4) ? argv[3] : NULL, 0);## 20 ##src/mysdr/main.c##
  21. loop(sockfd, salen); /* receive and print */## 21 ##src/mysdr/main.c##
  22. exit(0);## 22 ##src/mysdr/main.c##
  23. }## 23 ##src/mysdr/main.c##