0

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

4

2 回答 2

1

你必须实现一个协议。毕竟,您不能确定套接字是否同步。例如,您可以发送一个 100 字节的包,然后接收两个或更多的包,将其相加。

于 2013-06-13T14:47:57.060 回答
0

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

所以我建议你考虑一下你的沟通方式的细节,然后尝试一下。然后,如果仍然存在问题,请尽可能具体地提出问题。

于 2013-06-13T14:50:14.690 回答