想用php做socket伺服器不知道如何實現同時和多個

時間 2021-10-14 21:29:01

1樓:空雪夢見

因為只有呼叫了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裡怎麼用執行緒,倒是找到了用程序的方式,所以就

2樓:

你知道有session這個東西嗎

html5的websocket和php的socket分別完成客戶端與伺服器端的通訊過程。 10

3樓:去未來生活

啟動php sever服務

client新建乙個websocket物件連線後端client傳送資料給後端

伺服器接受資料後返回資料

client接收到返回資料繼續下一步

我這邊有個聊天室的demo就是這樣做的,很簡答

4樓:杭州同濟醫院

php查web伺服器版本,linux伺服器,更新PHP版本,phpinfo還顯示以前的版本

其實原理就是 server http user agent 這個伺服器變數,然後再借助正則,就得到了。function get os else if eregi win 9x agent strpos agent,4.90 else if eregi win agent ereg 98 agent ...

c如何使用 socket 類向 http 伺服器傳送數

socket程式設計首先要包含所需的標頭檔案winsock2.h並工程中新增庫檔案ws2 32.lib.接著載入套接字型檔所用函式是 wsastartup wversionrequested,wsadata 第一個引數代表的是所要載入的套接字型檔的版本,第二個引數用於儲存返回的版本資訊 wversi...

伺服器怎麼做RAID,伺服器硬碟怎樣做陣列

ms殭屍 製作磁碟陣列 raid,redundant array of independent disks 可以有以下操作 在adaptec磁碟陣列控制器上建立raid 容器 在這種陣列卡上建立容器的步驟如下 注意 請預先備份您伺服器上的資料,配置磁碟陣列的過程將會刪除伺服器硬碟上的所有資料 第1步...