chapinwan 2019-07-23 14:32 采纳率: 0%
浏览 1169
已结题

workerman 如何正确处理客户端tcp发送过来的数据

php

例:
0xF0,0xF0,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x00,0x03,0x21,0x2A,0xA0,0xA0

以上是由客户端发送到服务端的一条完整指令,由0xF0,0xF0开头,0xA0,0xA0结尾。

但是由于网络或其他原因,客户端发送的数据可能会出现分批发送,


如:第一次发送:

0xF0,0xF0,0x01,0x02,0x03,0x04

第二次再发送:

0x05,0x06,0x07,0x08,0x00,0x03,0x21,0x2A,0xA0,0xA0,0xF0,0xF0,0x01,0x02

请问再这种情况下如何正确的接收处理,拿到每一条完整的指令。。

  • 写回答

2条回答 默认 最新

  • Next66 2019-07-23 14:35
    关注

    你的这种问题就是典型的分包和粘包问题了,需要加协议头(固定长度的消息头, 并且消息头中要包含包体的长度)
    可以参考下php swoole扩展的分包粘包处理方式https://wiki.swoole.com/wiki/page/224.html

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料