我試圖發現一個給定的時間間隔後TCP服務器是否在服務器上被丟棄,並寫下如下代碼;C#TCP套接字編程 - 確定連接是否已被丟棄
var tcpClient = new TcpClient();
tcpClient.Client.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.KeepAlive, true);
tcpClient.Connect(Ip, Port);
var status = tcpClient.Connected ? "Connected" : "Failed to Connect";
if (connected)
{
Console.WriteLn(string.Format("Connected - Waiting for '{0}' to see if the connection is dropped", ConnectionDuration));
Thread.Sleep(ConnectionDuration);
status = tcpClient.Connected ? "Stayed Connected" : "Connection Dropped";
}
Console.WriteLn(string.Format("Connection Status: '{0}'", status);
使用此代碼,如果最初建立連接,我將始終收到「已連接」狀態消息。
由於服務器位於我們公司之外,因此不希望將數據寫入套接字,是否有任何其他方式來確定連接是否已被丟棄?
感謝
你是相當正確的,我會試試這個,然後標記,如果它的工作原理是接受 - HTTP://計算器.COM /問題/ 1363682 /怎麼辦-I-使-A-無阻塞,插座通話中C到確定連接狀態 – CityView 2010-10-14 14:11:34