在非阻塞套接字上调用shutdown()时,缓冲区中的剩余数据是什么?

时间:2018-04-06 05:52:10

标签: c sockets posix

我无法确定何时发送FIN(根据我的理解,shutdown()会导致发送FIN TCP数据包。)

什么时候?是在shutdown()被调用之后吗?如果是这样,当写入缓冲区中的某些数据仍然存在时会发生什么?我认为这必须是以下之一:

  1. FIN立即发送。如果另一端由于某种原因发送任何数据包,接收端应忽略其他数据包。
  2. 在缓冲区中的剩余数据全部发送后发送FIN。从发送结束开始,在致电shutdown()后,write()上的套接字结果会进一步errno次调用。

0 个答案:

没有答案