當前位置:編程學習大全網 - 編程軟體 - 想用PHP做Socket服務器,不知道如何實現同時和多個不同客戶端數據交互?

想用PHP做Socket服務器,不知道如何實現同時和多個不同客戶端數據交互?

因為只有調用了accept客戶端才能連上,妳如果accept下面接壹個循環,那麽第二個用戶不是說能不能進這個循環,而是連不進……此時只有第壹個用戶break出了循環,然後程序回頭再調用accept,第二個用戶才能連上。

用多進程來處理如何?因為accept壹個客戶端以後,應該是馬上準備accept下壹個客戶端才對,而不是處理完現在這個客戶端才accept下壹個客戶端。

socket_accept以後,直接調用

pcntl_fork(),此時進程會分裂為兩個,其中壹個的pnctl_fork返回值是0,另壹個不是0。不是0的那個直接繼續調用socket_accept即可,是0的那個處理客戶端請求。

pnctl_fork不知道在windows下能不能用。

不過返回不是0的那個進程並不是這樣就完事了,還要調用pcntl_wait防止子進程卡在那邊沒有完全結束。妳可以在主進程裏時不時就調用這個,配上WNOHANG作為option參數防止沒有子進程需要wait的時候卡在那邊。

這都是linux下常用的處理手段。說實話本來我想讓妳用多線程的,不過看了壹圈不知道php裏怎麽用線程,倒是找到了用進程的方式,所以就

  • 上一篇:連江縣英語培訓全日制嗎
  • 下一篇:要知道我是壹個學生,對計算機著迷了,我想知道VB是什麽?
  • copyright 2024編程學習大全網