gpt4 book ai didi

C# TCP 套接字编程 - 确定连接是否已断开

转载 作者:可可西里 更新时间:2023-11-01 02:53:01 25 4
gpt4 key购买 nike

我试图发现一个 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);

使用此代码,如果最初建立连接,我将始终收到“保持连接”状态消息。

因为服务器在我们公司之外,所以不希望向套接字写入数据,有没有其他方法可以确定连接是否已断开?

谢谢

最佳答案

进行非阻塞零字节发送调用,如果您收到 WOULDBLOCK 错误代码或成功,您仍然处于连接状态。

关于C# TCP 套接字编程 - 确定连接是否已断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com