5 int main(int argc, char *argv[])
7 struct sockaddr_in sai;
14 memset(&sai, 0, sizeof(sai));
15 sai.sin_family = AF_INET;
16 sai.sin_addr.s_addr = argc==2?inet_addr(argv[1]):htonl(INADDR_ANY);
17 sai.sin_port = htons(5001);
18 if(RUDPBind(s, (struct sockaddr*)&sai, sizeof(sai)) < 0)
27 //RUDPSetSockOpt(s, OPT_NBLK, &opt, sizeof(opt));
32 struct timeval tv = { 1, 0 };
34 r = RUDPSELECT_READABLE;
35 rlt = RUDPSelectSock(s, -1, &r, &tv);
38 printf("RUDPSelectSock: %d\n", rlt);
43 printf("No incoming connection\n");
47 RUDPSOCKCHNO r_schs[2];
49 RUDP_SET(s, -1, r_schs, n_schs);
50 rlt = RUDPSelect(r_schs, &n_schs, NULL, 0, NULL, 0, &tv);
53 printf("RUDPSelect: %d\n", rlt);
58 printf("No incoming connection\n");
62 int sa_len = sizeof(sai);
64 if(RUDPAccept(s, &a, (struct sockaddr*)&sai, &sa_len) < 0)
66 printf("accept error\n");
72 tv.tv_sec = 1; tv.tv_usec = 0;
75 r = RUDPSELECT_READABLE;
76 if( (r = RUDPSelectSock(a, -1, &r, &tv)) < 0 )
78 printf("RUDPSelectSock on accepted socket: %d\n", r);
81 if(r == 0) { continue; }
83 if( (len = RUDPRecv(a, &chno, line, 1000, 0)) > 0)
86 //printf("%s\n", line);
87 if(line[0] == '\0') break;
90 printf("receiving finished.\n");