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

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

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

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

解决方法

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

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

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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...