forked from unpbook/unpv13e
-
Notifications
You must be signed in to change notification settings - Fork 0
/
dgecholoop2.lc
31 lines (24 loc) · 1.41 KB
/
dgecholoop2.lc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "unp.h"## 1 ##src/udpcliserv/dgecholoop2.c##
static void recvfrom_int(int);## 2 ##src/udpcliserv/dgecholoop2.c##
static int count;## 3 ##src/udpcliserv/dgecholoop2.c##
void## 4 ##src/udpcliserv/dgecholoop2.c##
dg_echo(int sockfd, SA *pcliaddr, socklen_t clilen)## 5 ##src/udpcliserv/dgecholoop2.c##
{## 6 ##src/udpcliserv/dgecholoop2.c##
int n;## 7 ##src/udpcliserv/dgecholoop2.c##
socklen_t len;## 8 ##src/udpcliserv/dgecholoop2.c##
char mesg[MAXLINE];## 9 ##src/udpcliserv/dgecholoop2.c##
Signal(SIGINT, recvfrom_int);## 10 ##src/udpcliserv/dgecholoop2.c##
n = 240 * 1024;## 11 ##src/udpcliserv/dgecholoop2.c##
Setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &n, sizeof(n));## 12 ##src/udpcliserv/dgecholoop2.c##
for (;;) {## 13 ##src/udpcliserv/dgecholoop2.c##
len = clilen;## 14 ##src/udpcliserv/dgecholoop2.c##
Recvfrom(sockfd, mesg, MAXLINE, 0, pcliaddr, &len);## 15 ##src/udpcliserv/dgecholoop2.c##
count++;## 16 ##src/udpcliserv/dgecholoop2.c##
}## 17 ##src/udpcliserv/dgecholoop2.c##
}## 18 ##src/udpcliserv/dgecholoop2.c##
static void## 19 ##src/udpcliserv/dgecholoop2.c##
recvfrom_int(int signo)## 20 ##src/udpcliserv/dgecholoop2.c##
{## 21 ##src/udpcliserv/dgecholoop2.c##
printf("\nreceived %d datagrams\n", count);## 22 ##src/udpcliserv/dgecholoop2.c##
exit(0);## 23 ##src/udpcliserv/dgecholoop2.c##
}## 24 ##src/udpcliserv/dgecholoop2.c##