5 #include <sys/socket.h>
11 const int tcp_port_rdp = 3389;
12 int create_server_socket();
13 int serve_client(int sock);
17 int server_sock = create_server_socket();
19 struct sockaddr_in sin;
21 int sock = accept(server_sock, (struct sockaddr *)&sin, &len);
34 int create_server_socket()
36 int server_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
37 const unsigned int one = 1, zero = 0;
38 struct sockaddr_in addr;
41 setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one));
42 ioctl(server_sock, FIONBIO, &zero);
44 addr.sin_family = AF_INET;
45 addr.sin_addr.s_addr = INADDR_ANY;
46 addr.sin_port = htons(tcp_port_rdp);
49 err = bind(server_sock, (struct sockaddr *)&addr, sizeof(struct sockaddr));
54 /* try to recover from recoverable errors... */
55 if (errno == ENOMEM || errno == EADDRINUSE) {
56 puts("Waiting 1 sec before trying again...");
65 listen(server_sock, 20);
70 int serve_client(int sock)
73 unsigned char buf[4096];
76 /* receive ISO packets */