1

我的 c++ 应用程序管理多个套接字及其发送 + 接收。为了忽略问题,我在套接字上发送接收之前通过信号量进行锁定。当我在 100 台机器上运行该应用程序时,我发现有时可能是一段时间我的机器不发送它收到的消息的确认(我在 Wireshark 中看到数据包和此数据包的重新传输)。同样在这段时间里,我看到我的应用程序没有发送它必须发送的任何内容。

我的问题是:这个问题可能来自锁定机制的根本原因吗?锁定机制 - 当我锁定套接字时会导致操作系统也不在此套接字上发送任何内容吗?也许你也会知道:如何忽略这种行为?

谢谢

4

1 回答 1

1

哦,这听起来不太好。您应该提供有关您的应用程序设计的更多详细信息,尤其是。围绕锁定的一些代码。

锁定资源通常使用互斥锁完成,但初始化为 1 的信号量会在推送时完成。

最重要的是:您是否正在处理锁内的网络调用引发的所有异常?

于 2012-04-19T09:32:05.623 回答