public bool Handle(byte[] handshakeMsg, int length, Socket socket, object state) { socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true); var handler = new FileTransmitService(); //handler.controller = _controller; // if (handshakeMsg[5] == 0x00) { handler.Upload(socket, handshakeMsg, length); } else { handler.Download(socket, handshakeMsg, length); } //轮询的方式关闭超时的连接 //IList<FileTransmitService> handlersToClose = new List<FileTransmitService>(); //lock (Handlers) //{ // Handlers.Add(handler); // Logging.Debug("Adding Handler..."); // DateTime now = DateTime.Now; // if (now - lastSweepTime > TimeSpan.FromSeconds(1)) // { // lastSweepTime = now; // foreach (var handlerNeedsToBeClosed in Handlers) // { // if (now - handlerNeedsToBeClosed.LastActivity > TimeSpan.FromSeconds(900)) // { // handlersToClose.Add(handlerNeedsToBeClosed); // } // } // } //} //foreach (var closingHandler in handlersToClose) //{ // Logging.Debug("Closing timed out TCP connection."); // closingHandler.Close(); //} return(true); }
public bool Handle(byte[] handshakeMsg, int length, Socket socket, object state) { socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true); var handler = new FileTransmitService(); //handler.controller = _controller; // if (handshakeMsg[5] == 0x00) handler.Upload(socket, handshakeMsg, length); else handler.Download(socket, handshakeMsg, length); //轮询的方式关闭超时的连接 //IList<FileTransmitService> handlersToClose = new List<FileTransmitService>(); //lock (Handlers) //{ // Handlers.Add(handler); // Logging.Debug("Adding Handler..."); // DateTime now = DateTime.Now; // if (now - lastSweepTime > TimeSpan.FromSeconds(1)) // { // lastSweepTime = now; // foreach (var handlerNeedsToBeClosed in Handlers) // { // if (now - handlerNeedsToBeClosed.LastActivity > TimeSpan.FromSeconds(900)) // { // handlersToClose.Add(handlerNeedsToBeClosed); // } // } // } //} //foreach (var closingHandler in handlersToClose) //{ // Logging.Debug("Closing timed out TCP connection."); // closingHandler.Close(); //} return true; }