dgecholoop2.lc 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. #include "unp.h"## 1 ##src/udpcliserv/dgecholoop2.c##
  2. static void recvfrom_int(int);## 2 ##src/udpcliserv/dgecholoop2.c##
  3. static int count;## 3 ##src/udpcliserv/dgecholoop2.c##
  4. void## 4 ##src/udpcliserv/dgecholoop2.c##
  5. dg_echo(int sockfd, SA *pcliaddr, socklen_t clilen)## 5 ##src/udpcliserv/dgecholoop2.c##
  6. {## 6 ##src/udpcliserv/dgecholoop2.c##
  7. int n;## 7 ##src/udpcliserv/dgecholoop2.c##
  8. socklen_t len;## 8 ##src/udpcliserv/dgecholoop2.c##
  9. char mesg[MAXLINE];## 9 ##src/udpcliserv/dgecholoop2.c##
  10. Signal(SIGINT, recvfrom_int);## 10 ##src/udpcliserv/dgecholoop2.c##
  11. n = 240 * 1024;## 11 ##src/udpcliserv/dgecholoop2.c##
  12. Setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &n, sizeof(n));## 12 ##src/udpcliserv/dgecholoop2.c##
  13. for (;;) {## 13 ##src/udpcliserv/dgecholoop2.c##
  14. len = clilen;## 14 ##src/udpcliserv/dgecholoop2.c##
  15. Recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);## 15 ##src/udpcliserv/dgecholoop2.c##
  16. count++;## 16 ##src/udpcliserv/dgecholoop2.c##
  17. }## 17 ##src/udpcliserv/dgecholoop2.c##
  18. }## 18 ##src/udpcliserv/dgecholoop2.c##
  19. static void## 19 ##src/udpcliserv/dgecholoop2.c##
  20. recvfrom_int(int signo)## 20 ##src/udpcliserv/dgecholoop2.c##
  21. {## 21 ##src/udpcliserv/dgecholoop2.c##
  22. printf("\nreceived %d datagrams\n", count);## 22 ##src/udpcliserv/dgecholoop2.c##
  23. exit(0);## 23 ##src/udpcliserv/dgecholoop2.c##
  24. }## 24 ##src/udpcliserv/dgecholoop2.c##