- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有三个使用套接字相互通信的应用程序。他们可以都住在自己的机器上,但他们也可以共享一台机器。现在我有两个在同一台机器上,第三个在自己的机器上。我试图让我的通信防弹,所以我拔下电缆并终止应用程序以确保一切按预期工作。
这里有一个简单的草图:
现在,当我拔下连接到 PC2 的网络电缆(红色连接“Con B”)时,内部连接停止通话(蓝色连接“Con A”)。我从套接字上的“应用程序 1”发送内容,但永远不会到达“应用程序 2”。
我已经建立了一种机制来发现这一点并断开连接然后重新连接,然后我可以随心所欲地拔下电缆,“Con A”就会继续工作。这只是第一次。
我已确认在断开“Con B”之前通过“Con A”进行通信。
我连接和重新连接的方式完全相同,代码相同,所以没有区别。
发生了什么事?
由答案触发的附加信息:PC 1 和 PC 2 共享地址直到最后一个字节。
我有一个内部保持事件机制,我发送一条消息并期望每 10 秒收到一次响应。
当我杀死 App 3 时,这不会发生,只有在拔下电缆时才会发生。
最佳答案
您为“Con A”使用什么地址?如果您使用的地址绑定(bind)到外部网络适配器,即使您正在与同一台机器通话,那么您所描述的情况也可能发生。
你可以做的是使用地址 localhost
(127.0.0.1) 作为“Con A”,它应该完全独立于外部网络上发生的事情。
关于c# - 拔下网线时 socket 会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/438196/
我有一个带有对话框的应用程序。我想知道什么时候拔下扩展监视器,以便我可以将应用程序窗口移动到主监视器(如果应用程序在扩展监视器中)。我还想知道用户何时对扩展显示器位置进行更改。 发生这种情况时是否有
有没有办法在 USB 电缆断开后继续使用 Eclipse 进行调试。 应用程序以 Debug模式启动,USB 电缆断开连接,然后重新连接。现在我想继续调试。这是否可以在不重新启动应用程序的情况下实现?
我想在拔掉 USB 时停止正在运行的服务。 在我的 Activity onCreate 中,我检查其 action 的 Intent if (getIntent().getAction().e
有没有办法使用 Qt 发送信号或任何其他方式来判断 USB 串行电缆是否已拔出? 最佳答案 您可以在 QtSerialPort 附加组件中使用 QSerialPort 类的 error 信号。在我们的
我有一个连接到 USB 配件的应用程序。很简单,但即使拔下 USB 数据线后配件仍保持连接状态。 这是我的代码: public boolean checkOpenAccessory(){
我在 bash 中有这个脚本 tahat 应该检查机器中是否存在 USB 设备,如果不存在则重新启动它: #!/bin/bash UNPLUG_MESSAGE="PLEASE UNPLUG THE U
我有一个 python3.2 脚本在 raspberry pi - Raspbian 操作系统启动时从 rc.local 运行,它导入一个名为 inouts.py 模块的文件,我制作并位于同一目录中,
我是一名优秀的程序员,十分优秀!