C# KeepAlive的相關設置
網上有很多相關KeepAlive的內容,終於找到了有關C#的這方面資料,設置了下,有行可靠!
TcpListener myListener = new TcpListener(IPAddress.Any, port);//綁定端口IP信息
myListener.Start();//開始監聽
TcpClient newClient=myListener.AcceptTcpClient();//接受請求
newClient.Client.IOControl(IOControlCode.KeepAliveValues, KeepAlive(1, 30000, 10000), null);//設置Keep-Alive參數
private byte[] KeepAlive(int onOff, int keepAliveTime, int keepAliveInterval)
{
byte[] buffer = new byte[12];
BitConverter.GetBytes(onOff).CopyTo(buffer, 0);
BitConverter.GetBytes(keepAliveTime).CopyTo(buffer, 4);
BitConverter.GetBytes(keepAliveInterval).CopyTo(buffer, 8);
return buffer;
}
KeepAlive函數參數說明:
onOff:是否開啟KeepAlive
keepAliveTime:開始首次KeepAlive探測前的TCP空閉時間
keepAliveInterval: 兩次KeepAlive探測間的時間間隔
Keep-Alive的位置我是放在收到客戶端以后,對每個連入的客戶端都設置一次。
相關文章:http://www.cnblogs.com/lidabo/p/4253356.html
