[請益] 請教PHP接收封包後的解析處理方式

看板PHP作者時間9年前 (2016/07/10 11:24), 9年前編輯推噓2(202)
留言4則, 1人參與, 最新討論串1/1
簡敘操作內容: 在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://www.ptt.cc/bbs/PHP/M.1468121077.A.5BD.html

07/10 12:02, , 1F
每次讀1byte,不是*就一直append?
07/10 12:02, 1F
是個好辦法,不知道會不會影響到速度。感謝陰影給了方向! 想一想,好像如果不是一個一個好像就沒有其他方式了..

07/10 18:08, , 2F
也還好吧?你一次讀8192,explode下去
07/10 18:08, 2F

07/10 18:09, , 3F
第一組分作append,如果>2組,中間的全是一組array
07/10 18:09, 3F

07/10 18:09, , 4F
最後一組就是未完
07/10 18:09, 4F
好的,感謝shadowjohn,謝謝您。 ※ 編輯: freedom74569 (1.163.34.61), 07/10/2016 21:10:55
文章代碼(AID): #1NWR_rMz (PHP)
文章代碼(AID): #1NWR_rMz (PHP)