public TcpServer(IPacketPropagator propagator, int backlog = 5, bool multipleConnections = true, bool nagleAlgo = true, bool partialReceives = false) { Contract.Requires(propagator != null); Contract.Requires(backlog > 0); _propagator = propagator; MaximumPendingConnections = backlog; AllowMultipleConnections = multipleConnections; NoDelayAlgorithm = nagleAlgo; AllowPartialReceives = partialReceives; }
internal TcpClient(Socket socket, TcpServer server, IPacketPropagator propagator) { Contract.Requires(socket != null); Contract.Requires(server != null); Contract.Requires(propagator != null); Contract.Ensures(Server == server); _socket = socket; _eventArgs = SocketAsyncEventArgsPool.Acquire(); _headerBuffer = new byte[propagator.IncomingHeaderLength]; _receiveBuffer = new byte[InitialReceiveBufferSize]; // Start out with a 2 ^ 16 - 1 buffer. _propagator = propagator; Server = server; UserData = new Bag(); // Start receiving packets... Receive(); Contract.Assume(Server == server); }