作者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/m.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