]> git.lizzy.rs Git - rudp.git/blob - rudpsel.c
Switch to CMake
[rudp.git] / rudpsel.c
1 #include "rudp.h"
2 #include <string.h>
3 #include <stdio.h>
4 #include <unistd.h>
5 #include <stdlib.h>
6 #include <pthread.h>
7
8 //===================================================================
9
10 int main(int argc, char *argv[])
11 {
12         struct sockaddr_in sai;
13         RUDPSOCKET s;
14
15         RUDPStart();
16        
17         s = RUDPSocket();
18
19         memset(&sai, 0, sizeof(sai));
20         sai.sin_family = AF_INET;
21         sai.sin_addr.s_addr = argc==2?inet_addr(argv[1]):htonl(INADDR_ANY);
22         sai.sin_port = htons(5001);
23         if(RUDPBind(s, (struct sockaddr*)&sai, sizeof(sai)) < 0)
24         {
25                 perror("bind");
26                 return -1;
27         }
28
29         RUDPListen(s, 5);
30
31         int ic = 0;
32         char cBusy[] = "-\\|/";
33
34         while(1)
35         {
36                 struct timeval tv = { 0, 500000 };
37                 if(RUDPSelectSock(s, -1, RUDPSELECT_READABLE, &tv) > 0)
38                 {
39                         int sa_len = sizeof(sai);
40                         RUDPSOCKET a;
41
42                         if(RUDPAccept(s, &a, (struct sockaddr*)&sai, &sa_len) < 0)
43                         {
44                                 printf("accept error\n");
45                         }
46                         else
47                                 RUDPClose(a);
48                 }
49                 else
50                 {
51 #if 0
52                         printf("\r%c", cBusy[ic]); fflush(stdout);
53                         ic = (ic+1)%4;
54 #else
55                         printf("\r%d", ic++); fflush(stdout);
56 #endif
57                 }
58         }
59
60         RUDPClose(s);
61
62         RUDPCleanup();
63
64         return 0;
65 }