微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一个c#.net4应用程序,使用BeginReceiveFrom和EndRecieveFrom在套接字上侦听.所有的工作正如预期,直到我把机器睡觉,然后恢复.

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

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

解决方法

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

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

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

原文地址:https://www.jb51.cc/csharp/96244.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐