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

c# – 当我拔下网线时插座会怎样?

我有三个应用程序使用套接字相互通信.他们都可以住在他们自己的机器上,但他们也可以共用一台机器.现在我在他们自己的机器上有两个在同一个和第三个.我正在努力使我的通信防弹,所以我拔掉电缆并杀死应用程序,以确保一切按预期工作.

这是一个快速的草图:

alt text http://i40.tinypic.com/9vch86.png

现在,当我拔下网线到PC2(红色连接“Con B”)时,内部连接停止通话(蓝色连接“Con A”).我从“应用程序1”发送的东西在套接字上永远不会到达“App 2”.

我已经建立了一个发现这种情况并断开连接然后重新连接的机制,之后我可以拔掉我想要的电缆并且“Con A”继续工作.这只是第一次.

我已确认在断开“Con B”之前通过“Con A”进行通信.
我以完全相同的方式连接和重新连接,它是相同的代码,所以没有区别.

发生了什么?

答案触发的其他信息:
PC 1和PC 2共享地址到最后一个字节.
我有一个内部保持活动机制,我发送一条消息,并期望每10秒响​​应一次.
当我杀死App 3时,只有在拔掉电缆时才会发生这种情况.

解决方法

你在“Con A”中使用了什么地址?如果您使用的是绑定到外部网络适配器的地址,即使您正在与同一台计算机通信,那么您所描述的内容也可能发生.

你可以做的是使用地址localhost(127.0.0.1)作为“Con A”,它应该完全独立于外部网络上发生的事情.

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

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

相关推荐