Я пытаюсь выяснить, прерывается ли 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);
С этим кодом, если соединение установлено изначально, я всегда получу сообщение о статусе «Не отключен».
Поскольку сервер находится за пределами нашей компании, нежелательно записывать данныек сокету, есть ли другой способ определить, было ли разорвано соединение?
Спасибо