我的c++应用程序管理几个套接字及其发送+接收。为了忽略这些问题,我在套接字上发送接收之前通过信号量进行锁定。当我在100台机器上运行这个应用程序时,我发现有时我的机器不会为它收到的消息发送ack (我在wireshark中看到了数据包和对此数据包的重新传输)。另外,在这段时间内,我发现我的应用程序没有发送任何来自它必须发送的内容。
我的问题是:这个问题是否源于锁定机制的根本原因?锁定机制-当我锁定一个套接字时,是否也会导致操作系统不在这个套接字上发送任何东西?也许你也会知道:如何忽略这种行为?
谢谢
发布于 2012-04-19 17:32:06
哦,这听起来不太妙。你应该提供你的应用程序设计的更多细节,特别是。一些关于锁定的代码。
锁定资源通常是通过互斥完成的,但在推送时,初始化为1的信号量也可以。
最重要的是:您是否正在处理锁中的网络调用抛出的所有异常?
https://stackoverflow.com/questions/10225205
复制相似问题