php中socket的使用

2022-08-16 02:12:21 字數 2420 閱讀 5096

一、開啟socket

phpinfo();檢視是否開啟了socket擴充套件,否則在php.ini中開啟。

<?php 

error_reporting(e_all

);set_time_limit(0);

//ob_implicit_flush();

$address = '127.0.0.1';

$port = 10005;

//建立埠

//建立乙個socket識別符號,使用ipv4,可靠的tcp協議進行資料通訊

//建立socket識別符號失敗

if( ($sock = socket_create(af_inet, sock_stream, sol_tcp)) === false

) //

繫結if (socket_bind($sock, $address, $port) === false

) //

監聽if (socket_listen($sock, 5) === false

) do

//welcome 傳送到客戶端

$msg = "server send:welcome

"; socket_write(

$msgsock, $msg, strlen($msg

));

echo 'read client message\n';

$buf = socket_read($msgsock, 8192);

$talkback = "received message:$buf\n";

echo

$talkback

;

if (false === socket_write($msgsock, $talkback, strlen($talkback

)))

else

socket_close(

$msgsock

);}

while(true

);//

關閉socket

socket_close($sock

);?>

伺服器端需要在cli模式是執行,有可能cli模式下php.ini檔案載入的不一樣

可以像如下輸出

這時候在zhoxh目錄下就有個tem.text檔案。檢視 configuration file (php.ini) path => c:\windows 。不是我的php.ini 檔案,這說明呼叫的php.ini檔案時錯誤的。這時候我們要指定php.ini檔案命令如下

注意的是我的php可以直接執行時配置了環境變數。

三、客戶端

執行結果:
server:

php中socket的使用(重點參考)

一 開啟socket phpinfo 檢視是否開啟了socket擴充套件,否則在php.ini中開啟。二 伺服器端 的寫法 error reporting e all set time limit 0 ob implicit flush address 127.0.0.1 port 10005 建立...

php中socket的使用(重點參考)

一 開啟socket phpinfo 檢視是否開啟了socket擴充套件,否則在php.ini中開啟。二 伺服器端 的寫法 error reporting e all set time limit 0 ob implicit flush address 127.0.0.1 port 10005 建立...

php中socket的執行

服務端 確保在連線客戶端時不會超時 set time limit 0 ip 127.0.0.1 port 1234 socket通訊整個過程 socket create socket bind socket listen socket accept socket read socket write ...