實現方法如下:
使用到的相關函式: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下所有檔案刪除,將不會自動跳轉 至此,服務端環境配置...