用PHP實現的服務端socket具體例項

2022-09-25 23:45:10 字數 1083 閱讀 1567

實現方法如下:

使用到的相關函式:socket_create、socket_set_block、socket_bind、socket_listen、socket_accept、socket_read、socket_write,這些函式具體引數說明在php文件上寫很詳細,這裡就不再贅述,這裡只是介紹服務端如何處理請求。

具體例項:

//確保在連線客戶端時不會超時

set_time_limit(0);

//設定ip和埠號

$address = "127.0.0.1";

$port = 54321;

$socketserver = socket_create(af_inet, sock_stream, sol_tcp) or die("socket_create() fail:" . socket_strerror(so . "/n");

//設定為阻塞模式

socket_set_block($socketserver) or die("socket_set_block() fail:" . socketjdwsiksg_strerror(socket_last_error()) . "/n");

//繫結埠

$result = socket_bind($socketserver, $address, $port) or die("socket fail:" . socket_strerror(socket_last_error()) . "/n");

//開始監聽

$result = socket_listen($socketserver, 4) or die("socket_listenwww.cppcns.com() fail:" . socket_strerror(socket_last_error()) . "/n");

do } while (true);

socket_close($socketserver);

總結:在接收到客戶端的請求後,可以結合php的多執行緒進行處理,這裡只是簡單的返回字串。 各大語言實現socket通訊的方式都是大同小異,在服務端的流程都是差不多的。在有現成高效能socket通訊框架的情況下,建議不要自己去實現,但是得理解框架底層是怎樣實現的。

用php模擬做服務端偵聽埠

參考 socket accept 是服務端接受客戶端請求,一旦有乙個客戶端鏈結上來的話,則這個函式會返回乙個新的socket資源,這個資源是與客戶端通訊的資源。socket accept 是阻塞的,會一直卡在那裡。正常的伺服器,應該是新開乙個子程序來處理請求。socket connect 是鏈結乙個...

php服務端setcookie 原理

1 什麼是 cookie?cookie 常用於識別使用者。cookie 是伺服器留在使用者計算機中的小檔案。每當相同的計算機通過瀏覽器請求頁面時,它同時會傳送 cookie。通過 php,您能夠建立並取回 cookie 的值。2 如何取回 cookie 的值?php 的 cookie 變數用於取回 ...

PHP服務端環境搭建

1.php服務端環境安裝套件xampp apach mysql php直譯器 f mydoc檔案 重要 dl 學習 download重要資源 apache伺服器元件 安裝 4.修改瀏覽器中預設出現的dashboard資料夾 解決辦法 將htdocs下所有檔案刪除,將不會自動跳轉 至此,服務端環境配置...