同时在一个套接字上recv()和send()是否安全?

时间:2010-07-22 11:24:11

标签: sockets send concurrency recv

我记得在某处读过一个插座可以看作是两个独立的半双工通道。是否意味着同一套接字的recv()send()实际上是不相关的?

  • 如果是的话,是按照定义还是 实施的具体情况?
  • 如果没有,两者如何相互干扰?

感谢。

2 个答案:

答案 0 :(得分:1)

我很好奇你认为他们互相干扰。你是否认为你可能会收到你发送的内容?

答案 1 :(得分:1)

如果是SOCK_STREAM,您可以同时使用send / recv。

Ex: 假设您有两个线程,一个负责发送数据 第二个负责接收您可以执行的数据

主要例行程序:   得到一个套接字fd。   创建一个POSIX线程,用于将缓冲区发送到此fd。   创建一个POSIX线程来接收从这个fd到达的数据。   连接到服务器。

线程1例程:   构造一个消息缓冲区;   将缓冲区发送到此fd。

线程2例程:   从这个fd recv数据。   处理日期。