c# – 在Windows中挂起/恢复的套接字会发生什么
发布时间:2020-12-15 18:11:56 所属栏目:百科 来源:网络整理
导读:我有一个c#.net4应用程序,使用BeginReceiveFrom和EndRecieveFrom在套接字上侦听.所有的工作正如预期,直到我把机器睡觉,然后恢复. 在这一点上EndReceieveFrom执行并抛出一个异常(无法访问已处理的对象).看来当机器暂停时插座被安置,但我不知道如何处理这个.
我有一个c#.net4应用程序,使用BeginReceiveFrom和EndRecieveFrom在套接字上侦听.所有的工作正如预期,直到我把机器睡觉,然后恢复.
在这一点上EndReceieveFrom执行并抛出一个异常(无法访问已处理的对象).看来当机器暂停时插座被安置,但我不知道如何处理这个. 我假设所有套接字已经被处理,并从头开始重新创建它们?跟踪确切问题时遇到问题,因为远程调试也会暂停/恢复. 解决方法
在暂停/恢复期间发生什么事情取决于您的硬件和网络设置.如果您的网卡在暂停期间未被禁用,并且暂停是短暂的,则打开的连接将在暂停/恢复时无任何问题(打开TCP连接可能会在另一端超时).
但是,如果您的网络适配器在睡眠期间被禁用,或者是因为连接到禁用的集线器而被禁用的USB适配器,或者您的计算机从DHCP获取新的IP地址,或者您的无线适配器重新连接到不同的接入点等,则所有当前连接将被丢弃,监听端口将不再有效等. 这不是特定于睡眠/恢复.网络接口随时可以下载,代码必须处理.您可以使用USB网络适配器轻松模拟,例如将其从计算机中剔出,您的代码必须处理它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |