- 在客户端,它总是得到完全响应,或者有一半得到响应的机会,另一半得到另一种响应(例如:取决于缓冲区,我们为recv()API定义)。
- 有没有可能在recv()API中接收两个填充响应。
0
A
回答
1
您可以从零到您请求的大小获取任意数量的数据。始终检查返回值以查看实际收到的数据量。
要回答您的问题:您可以获得比完整的“回复”更少的回报,或者您可以获得比完整的“回复”更多的回复。如果您收到多条完整的回复消息,您可能会得到两个或一个半,或者其他不止一个。
3
TCP不保留消息边界。它公开的是一个字节流。因此,您在一边调用的send()可能不对应于另一边的recv()。例如,下面可能会发生:
- A调用发送(),具有100个字节,然后调用再次发送()有100个字节
- B调用的recv(),并得到200个字节(见Nagle's algorithm)
或者反过来说:
- A调用send()方法1 MIB
- B调用的recv(),获得512昆明植物研究所,然后调用的recv()再次,得到512 KiB(缓冲区空间在接收方或发送方都不足)。
关于你提到的“填充”的问题,不是说你有检查的recv的返回值(),看看有多少字节,其中居然在缓冲区中返回。
0
可以形成传递给发送这样的数据块:[6个字节:数据大小的头] [数据]
然后调用的recv()在回路中读取在每次迭代1个字节。读取'数据大小头'(前6个字节)并分配所需大小的缓冲区,然后读取其余字节。
相关问题
- 1. 在recv()api中填充的数据
- 2. 如何调用API并在React中填充响应
- 3. 响应式表格在填充时失去响应能力
- 4. 使用来自API端点的响应填充BackboneJS模型
- 5. API响应填充了奇怪的字符
- 6. 如何用外部API响应填充ListBox?
- 7. jQuery Datatables - 表未填充Ajax响应
- 8. 响应DIV填充整个屏幕
- 9. 响应网格填充图片问题
- 10. fancybox缩略图的响应填充
- 11. 缓存getJSON响应,填充选择框
- 12. 响应式图像 - 额外填充?
- 13. 从XML填充列表<>响应
- 14. 从JSON填充选择2 Ajax响应
- 15. VUE JS - Ajax响应我已填充
- 16. 在Windows中的Outlook电子邮件响应填充
- 17. 如何先填充列然后用css网格响应地填充行?
- 18. 在动态字段上自动填充ajax响应
- 19. 填充在响应电子邮件设计
- 20. 从Struts2响应中填充ExtJS4组合框
- 21. 响应式图像中的奇怪填充
- 22. 如何从JSON响应中填充列表<Object>
- 23. Jquery JSON响应以填充表格中的许多字段
- 24. Google自动填充API
- 25. 从REST API填充SQL Azure
- 26. Html正在从右侧移动和平板电脑响应视图中填充一些填充
- 27. 如何填充在Drupal的形式API
- 28. 在api请求上填充文本框
- 29. 在VBA中填充
- 30. 在asp.net中填充