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

前端之家收集整理的这篇文章主要介绍了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”,它应该完全独立于外部网络上发生的事情.

猜你在找的C#相关文章