public HTTPServerSession(Socket socket, HTTPServerParams parameters) { _socket = socket; _params = parameters; _maxRequests = parameters.MaxRequests; // we are local, don't wait forever when sending or receiving data (30 sec) _socket.SendTimeout = 30000; _socket.ReceiveTimeout = 30000; }
/// <summary> /// Create an HTTPServer. /// </summary> /// <param name="factory">The RequestHandlerFactory that will instantiate the /// Request handler(s) for this server.</param> /// <param name="socket">The socket on which this server will listen for /// connections. The socket must be bound to an endpoint prior to creating /// the server.</param> /// <param name="parameters">The parameters used for this server.</param> public HTTPServer(IHTTPRequestHandlerFactory factory, Socket socket, HTTPServerParams parameters) { if (!socket.IsBound) throw new HTTPException("The socket must be bound."); _factory = factory; _socket = socket; _params = parameters; _socket.Listen(64); }
/// <summary> /// Create an HTTPServer. /// </summary> /// <param name="factory">The RequestHandlerFactory that will instantiate the /// Request handler(s) for this server.</param> /// <param name="port">The port on which to listen for connections. The socket /// will be created and bound to all interfaces by the HTTPServer</param> /// <param name="parameters">The parameters used for this server.</param> public HTTPServer(IHTTPRequestHandlerFactory factory, int port, HTTPServerParams parameters) { _factory = factory; _params = parameters; AddressFamily addressFamily; IPAddress bindAddress; //if (Socket.OSSupportsIPv6) //{ // addressFamily = AddressFamily.InterNetworkV6; // bindAddress = IPAddress.IPv6Any; //} //else //{ addressFamily = AddressFamily.InterNetwork; bindAddress = IPAddress.Any; //} _socket = new Socket(addressFamily, SocketType.Stream, ProtocolType.Tcp); _socket.Bind(new IPEndPoint(bindAddress, port)); _socket.Listen(64); }