UDP
udp不是流式的,每次接收一个包,长度不超过(65535-28,总包长65535字节,包头28字节)。所以UDP方式下不需要填写任何参数直接调用 $client->recv() 即可。注意如果填写了接收长度,但实际接收到的包超过此长度,那么超过的部分将会被丢弃。

如果Server端是分包发送的,那么调用成需要加while循环来接收,调用端确定接收完毕或者发生超时时退出。

TCP
TCP是流式的,只要有数据就可以一直接收。一般有2种用法。
1、不确定包长度
循环接收,调用端判断是否每个包结尾是否有包结束符,有时或者超时时退出。

2、确定包长度
一般协议都是包头+包体,包头中有包的长度值。
先调用一次 $client->recv(包头长度) ,然后包头后拿出包长度值再 $client->recv(包长度-包头长度, 1). 就可以接收到整个包,如果发生超时表示调用失败。

最新文章

  1. 汇编语言进阶和Makefile进阶---第二天
  2. shell脚本处理大数据系列之(一)方法小结
  3. Error:/etc/fstab:Read-only file system错误的解决办法
  4. margin的BUG(2)
  5. c#equals相关
  6. MVC模式下xml文件的解析
  7. C#邮件收发
  8. HDU - 2502 Subway
  9. Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3)(A.B.C,3道暴力题,C可二分求解)
  10. 简单实现ASP.Net MVC网页播放音乐
  11. day 15 - 2 内置函数练习
  12. 【转】Windons+jenkins,构建java程序,提示C:\Windows\TEMP\jenkins5037773887088486383.bat Access is denied
  13. deep learning RNN
  14. CodeForces149D dfs实现区间dp
  15. 前端-----JavaScript 初识基础
  16. 谈一谈java里面的反射机制
  17. Gogs基本使用介绍
  18. linux权限管理之基本权限
  19. #ifdef __cplusplus extern "C" { #endif 含义
  20. win7禁用Adnimistrator账号登录

热门文章

  1. JQ弹出框移动-插件分享~~~
  2. NSComparisonResul、NSNotFound、NSEnumerationOptions......的用处
  3. 算法课堂笔记14—NP-COMPLETENESS
  4. python jar
  5. 公用表表达式CTE
  6. .htaccess应该放在哪里?
  7. [最短路径SPFA] POJ 1847 Tram
  8. HTML5本地数据库(WebSQL)[转]
  9. 常用Maven插件介绍
  10. iOS8定位问题解决方案