+#include <netinet/in.h>
+
+#include <string>
+
+#include "thread.h"
+
+enum SocketType {
+ TCP_SOCKET,
+ UDP_SOCKET,
+};
+int create_server_socket(const sockaddr_in6 &addr, SocketType socket_type);
+
+class AcceptorProto;
+
+sockaddr_in6 create_any_address(int port);
+sockaddr_in6 extract_address_from_acceptor_proto(const AcceptorProto &proto);