作者freedom74569 ()
看板PHP
标题[请益] 请教PHP接收封包後的解析处理方式
时间Sun Jul 10 11:24:32 2016
简叙操作内容:
在PHP server listener上听取socket,
client端会一直write进来server,
接下来server read後,
接收到client封包长短不固定,
可是会有一个 * 在这个封包的结尾,
以上是没有问题的~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
想请教就是!
如何撷取 * 前的资料,
将 * 前的完整资料拿到後储存到array,
buffer字串*後面的资料还留着,
如果还没有看到 * 就将buffer留着
如果取出的话,则就取出部分从buffer移除。
意识packet如下:
1,PPT,ASK,PHP,THANKS*1,PPT,TEC
会持续有封包进来,有时候长度不一,
取出*前的资料,存到buffer,
如果取到就将*包含星号那段从buffer移除。
抱歉,如果有叙述不周的话,再敬请指教喔~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.137.42.57
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1468121077.A.5BD.html
1F:推 shadowjohn: 每次读1byte,不是*就一直append? 07/10 12:02
是个好办法,不知道会不会影响到速度。感谢阴影给了方向!
想一想,好像如果不是一个一个好像就没有其他方式了..
2F:推 shadowjohn: 也还好吧?你一次读8192,explode下去 07/10 18:08
3F:→ shadowjohn: 第一组分作append,如果>2组,中间的全是一组array 07/10 18:09
4F:→ shadowjohn: 最後一组就是未完 07/10 18:09
好的,感谢shadowjohn,谢谢您。
※ 编辑: freedom74569 (1.163.34.61), 07/10/2016 21:10:55