5 #include <sys/socket.h>
9 const int tcp_port_rdp = 3389;
10 int create_server_socket();
11 int serve_client(int sock);
15 int server_sock = create_server_socket();
17 struct sockaddr_in sin;
19 int sock = accept(server_sock, (struct sockaddr *)&sin, &len);
32 int create_server_socket()
34 int server_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
35 const unsigned int one = 1, zero = 0;
36 struct sockaddr_in addr;
39 setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one));
40 ioctl(server_sock, FIONBIO, &zero);
42 addr.sin_family = AF_INET;
43 addr.sin_addr.s_addr = INADDR_ANY;
44 addr.sin_port = htons(tcp_port_rdp);
47 err = bind(server_sock, (struct sockaddr *)&addr, sizeof(struct sockaddr));
52 /* try to recover from recoverable errors... */
53 if (errno == ENOMEM || errno == EADDRINUSE) {
54 puts("Waiting 1 sec before trying again...");
63 listen(server_sock, 20);
68 int serve_client(int sock)
71 unsigned char buf[4096];
73 /* receive ISO packets */