c# – 在Windows中挂起/恢复的套接字会发生什么

前端之家收集整理的这篇文章主要介绍了c# – 在Windows中挂起/恢复的套接字会发生什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个c#.net4应用程序,使用BeginReceiveFrom和EndRecieveFrom在套接字上侦听.所有的工作正如预期,直到我把机器睡觉,然后恢复.

在这一点上EndReceieveFrom执行并抛出一个异常(无法访问已处理的对象).看来当机器暂停时插座被安置,但我不知道如何处理这个.

我假设所有套接字已经被处理,并从头开始重新创建它们?跟踪确切问题时遇到问题,因为远程调试也会暂停/恢复.

解决方法

在暂停/恢复期间发生什么事情取决于您的硬件和网络设置.如果您的网卡在暂停期间未被禁用,并且暂停是短暂的,则打开的连接将在暂停/恢复时无任何问题(打开TCP连接可能会在另一端超时).

但是,如果您的网络适配器在睡眠期间被禁用,或者是因为连接到禁用的集线器而被禁用的USB适配器,或者您的计算机从DHCP获取新的IP地址,或者您的无线适配器重新连接到不同的接入点等,则所有当前连接将被丢弃,监听端口将不再有效等.

这不是特定于睡眠/恢复.网络接口随时可以下载,代码必须处理.您可以使用USB网络适配器轻松模拟,例如将其从计算机中剔出,您的代码必须处理它.

原文链接:https://www.f2er.com/csharp/96244.html

猜你在找的C#相关文章