Unix IPC套接字发送/ recv同步

时间:2013-06-13 14:44:37

标签: c++ sockets unix

我正在使用本地的Unix套接字在两个不同的进程之间进行通信。事实上,bth端的代码的某些部分需要不同的时间来运行,我需要在两个进程中同步recvsend。有没有办法强制sendrecv等待相反过程中的下一个相应行?

2 个答案:

答案 0 :(得分:1)

您必须实施协议。毕竟,您无法确定套接字是否同步。例如,您可以发送一个包含100个字节的包,然后再接收两个甚至更多的包来添加它。

答案 1 :(得分:0)

默认情况下,recv()将阻塞(等待),直到有数据要读取,而send()将阻塞,直到缓冲区中有空间要写入。对于大多数应用程序,这是足够的同步(如果你设计你的协议)。

因此,我建议您只考虑沟通方式的详细信息,并进行尝试。然后,如果仍然存在问题,请回答尽可能具体的问题。