首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接收端的应用程序何时从TCP缓冲区读取数据?

接收端的应用程序何时从TCP缓冲区读取数据?
EN

Stack Overflow用户
提问于 2015-05-27 20:48:58
回答 1查看 32关注 0票数 0

它是否仅在PSH位被设置或缓冲区已满时才读取,或者是否存在管理该过程的某些定时?如果是,那么这些时间安排是什么,或者至少是推荐的时间安排呢?

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

EN

回答 1

Stack Overflow用户

发布于 2015-05-27 22:04:45

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

它是否仅在PSH位被设置或缓冲区已满时才读取,或者是否存在管理该过程的某些定时?

这取决于应用程序。应用逻辑应确定何时从TCP recv套接字缓冲区读取。TCP不强制执行任何规则。如果应用程序没有读取,那么TCP recv缓冲区就会被填满,因为数据不断流入,流控制开始生效。

你可以写一个程序,它永远不会调用recv,因此不会从TCP buffer中获取数据。或者,你可以使用阻塞套接字,调用recv,然后被阻塞,直到有数据进入。或者,如果是非阻塞的,您可以依靠轮询机制,如select,在数据到达套接字时调用recv。TCP缓冲区无需已满即可读取到应用程序中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30482962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档