接收方的应用程序何时从TCP缓冲区读取?

时间:2015-05-27 12:48:58

标签: tcp tcpclient

它只在PSH位置1或缓冲区已满时读取,还是有一些时序管理该进程?如果是这样,那些时间是什么,或者至少是推荐的时间是什么?

我看了RFC1122,但还没有找到具体的信息。我也在网上搜索过,但没有成功。

1 个答案:

答案 0 :(得分:0)

  

接收方的应用程序何时从TCP缓冲区读取?

     

它只在PSH位置1或缓冲区已满时读取,还是有一些时间来管理该过程?

这取决于应用程序。应用程序逻辑应确定何时从TCP recv套接字缓冲区读取。 TCP不强制要求任何规则。如果应用程序没有读取,则TCP recv缓冲区会在数据不断流入并且流控制启动时填满。

您可以编写一个从不调用recv的程序,因此不会从TCP缓冲区中获取数据。或者你可以有阻塞套接字并调用recv并被阻止,直到某些数据进入。或者如果它是非阻塞的,你可以依靠select之类的轮询机制在数据时调用recv到达插座。 TCP缓冲区不需要满,可以读入应用程序。