5 #include <sys/socket.h>
9 static const int RDP_PORT = 3389;
10 int create_server_socket();
14 int server_sock = create_server_socket();
18 int sock = accept(server_sock, (sockaddr *)&sin, &len);
25 printf("Got socket.\n");
31 int create_server_socket()
33 int server_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
34 const unsigned int one = 1, zero = 0;
35 struct sockaddr_in addr;
38 setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one));
39 ioctl(server_sock, FIONBIO, &zero);
41 addr.sin_family = AF_INET;
42 addr.sin_addr.s_addr = INADDR_ANY;
43 addr.sin_port = htons(RDP_PORT);
46 err = bind(server_sock, (struct sockaddr *)&addr, sizeof(struct sockaddr));
51 /* try to recover from recoverable errors... */
52 if (errno == ENOMEM || errno == EADDRINUSE) {
53 puts("Waiting 1 sec before trying again...");
62 listen(server_sock, 20);