protected IAppSession CreateSession(System.Net.Sockets.Socket client, ISocketSession session) { if (m_SendTimeOut > 0) client.SendTimeout = m_SendTimeOut; if (m_ReceiveBufferSize > 0) client.ReceiveBufferSize = m_ReceiveBufferSize; if (m_SendBufferSize > 0) client.SendBufferSize = m_SendBufferSize; if (!Platform.SupportSocketIOControlByCodeEnum) client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, m_KeepAliveOptionValues); else client.IOControl(IOControlCode.KeepAliveValues, m_KeepAliveOptionValues, m_KeepAliveOptionOutValues); client.NoDelay = true; client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, true); return this.AppServer.CreateAppSession(session); }
public static void EnableLinger(System.Net.Sockets.Socket socket) { socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket, System.Net.Sockets.SocketOptionName.DontLinger, false); }