J'essaie de savoir si une connexion TCP est abandonnée sur le serveur après un intervalle donné et si j'ai écrit le code suivant;C# TCP Programmation de socket - Déterminer si une connexion a été supprimée
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);
Avec ce code, si une connexion est établie initialement, je recevrai toujours le message d'état "Reste connecté". Étant donné que le serveur est en dehors de notre société, il n'est pas souhaitable d'écrire des données sur le socket. Existe-t-il un autre moyen de déterminer si la connexion a été abandonnée?
Merci
Vous êtes tout à fait correct, je vais essayer cela et marquez comme acceptée si elle fonctionne - http: // stackoverflow .com/questions/1363682/comment-faire-je-faire-un-non-bloquant-socket-appel-en-c-à-déterminer-connexion-statut – CityView