8

我记得在某处读到一个套接字可以被视为两个独立的半双工通道。这是否意味着recv()send()一个套接字的和实际上是不相关的?

  • 如果是这样,它是根据定义还是特定于实现?
  • 如果不是,两者如何相互干扰?

谢谢。

4

2 回答 2

2

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

于 2010-07-22T11:33:50.323 回答
2

在 SOCK_STREAM 的情况下,您可以同时使用发送/接收。

例如:假设您有两个线程,一个负责发送数据,第二个负责接收数据,您可以执行以下操作

主要例程:获取套接字 fd。创建一个 POSIX 线程以将缓冲区发送到此 fd。创建一个 POSIX 线程来接收来自这个 fd 的数据。连接到服务器。

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

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

于 2015-03-27T13:00:47.090 回答