open Unix;; let open_server port = let socket = socket PF_INET SOCK_STREAM 0 in setsockopt socket SO_REUSEADDR true; bind socket (ADDR_INET (inet_addr_any, port)); listen socket 20; socket;; let string_of_sockaddr s = match s with | ADDR_UNIX s -> s | ADDR_INET (inet,p) -> (string_of_inet_addr inet)^":"^(string_of_int p);; let establish_thread_server f port = let socket_server = open_server port in while true do let socket_connection,client_addr = accept socket_server in Printf.eprintf "Connection from %s.\n" (string_of_sockaddr client_addr); Pervasives.flush Pervasives.stderr; ignore (Thread.create f socket_connection) done;; |