(** Conversion d'une adresse en chaîne de caractères *) 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);; (** Serveur TCP itératif appliquant une fonction sur les données reçues avant de les renvoyer *) let rec establish_iterative_server f port = let socket_server = open_server port in let rec server () = let socket_connection,client_addr = accept socket_server in Printf.eprintf "Connection from %s.\n" (string_of_sockaddr client_addr); Pervasives.flush Pervasives.stderr; f socket_connection; server () in server ();; |