C# TCP服务器断开连接/电缆拔出

C# TCP服务器断开连接/电缆拔出,c#,tcp,C#,Tcp,我有一个带有一个服务器和一个客户端的应用程序。 客户端如何知道服务器电缆是否已拔出或断开?有这样的活动吗? 我不想设置计时器来偶尔检查服务器是否收到消息… 我不想用民意测验 谢谢, Elad请参见以下问题: Yopu必须分析所有阶段的连接状态,并了解哪个阶段是问题所在,无论如何,为什么连接不起作用 还有其他与您的问题相关的链接: 最后一个方法,使用NetworkChange.NetworkAvailabilityChanged事件 链接:请参考以下问题: Yopu必须分析

我有一个带有一个服务器和一个客户端的应用程序。 客户端如何知道服务器电缆是否已拔出或断开?有这样的活动吗? 我不想设置计时器来偶尔检查服务器是否收到消息… 我不想用民意测验

谢谢,
Elad

请参见以下问题:

Yopu必须分析所有阶段的连接状态,并了解哪个阶段是问题所在,无论如何,为什么连接不起作用

还有其他与您的问题相关的链接:

最后一个方法,使用NetworkChange.NetworkAvailabilityChanged事件


链接:

请参考以下问题:

Yopu必须分析所有阶段的连接状态,并了解哪个阶段是问题所在,无论如何,为什么连接不起作用

还有其他与您的问题相关的链接:

最后一个方法,使用NetworkChange.NetworkAvailabilityChanged事件


链接:

使用TCP很简单:只要尝试发送任何内容,一段时间后,如果数据无法发送,您将返回一个错误。任何预先检查都无法回答您可能想问的问题—“服务器是否可以执行任务X?”—只有要求服务器实际执行任务X才能产生可靠的结果。假设您得到的答案是电缆已插入。但是,在代码根据这一事实采取任何行动之前,电缆会被拔掉。但是,当您提议的事件发送到您的代码时,它已经开始运行,就像电缆已插入一样。您不希望检测到网络电缆被拔下。更具体地说:TCP是为了适应网络中的暂时性问题而设计的。只要一个人没有真正尝试发送数据,连接中断是无害的;如果在下一次尝试任何通信之前中断被解决,那么代码将永远不会注意到,这是一件好事。如果你坚持无视这个好建议,你就会被某些类型的轮询所困扰,比如在TCP级别启用keep alive或在你自己的协议中实现,因为TCP的设计目的是不告诉你。使用TCP很简单:只要尝试发送任何东西,一段时间后,如果数据无法发送,您将返回一个错误。任何预检查都无法回答您可能想问的问题——“服务器是否可以执行任务X?”——只有要求服务器实际执行任务X才能产生可靠的结果。假设您得到的答案是电缆已插入。但是,在代码根据这一事实采取任何行动之前,电缆会被拔掉。但是,当您提议的事件发送到您的代码时,它已经开始运行,就像电缆已插入一样。您不希望检测到网络电缆被拔下。更具体地说:TCP是为了适应网络中的暂时性问题而设计的。只要一个人没有真正尝试发送数据,连接中断是无害的;如果在下一次尝试任何通信之前中断被解决,那么代码将永远不会注意到,这是一件好事。如果你坚持不接受这个好的建议,你就会被某些类型的轮询所困扰,比如在TCP级别启用keep alive或在你自己的协议中实现,因为TCP的设计目的是不告诉你。