<?php
設定時間限制(10);
$commonProtocol = getprotobyname("tcp");
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);
如果($套接字){
$結果 = socket_bind($socket, 'localhost', 1337);
如果($結果){
$結果 = socket_listen($socket, 5);
如果($結果){
echo "監聽成功";
}
}
}別的{
echo "失敗監聽";
}
做 {
if (($msgsock = socket_accept($socket))) { /* 傳送提示訊息給連接上來的使用者 */
$msg = "==========================================rn 」。
「歡迎來到 PHP 測試伺服器。rnrn」。
「要退出,請輸入「退出」。rn」。
「要關閉伺服器,請鍵入「shutdown」。rn」。
「要取得協助訊息,請輸入「help」。rn」。
"============================================rn" 。
“php>”;
}
socket_write($msgsock, $msg, strlen($msg));
做 {
$buf = socket_read($msgsock, 2048, PHP_BINARY_READ);
如果(假=== $buf){
echo "socket_read() 失敗:原因:" 。 socket_strerror($結果) 。 “n”;
休息2;
}
如果 (!$buf = 修剪($buf)) {
繼續;
} /* 用戶端輸入quit指令的時候關閉客戶端連線 */
如果 ($buf == 'q') {
休息;
} /* 客戶端輸入shutdown指令時服務端與客戶端都關閉 */
if ($buf == '關機') {
socket_close($msgsock);
休息2;
} /* 用戶端輸入help指令的時候輸出幫助資訊 */
如果 ($buf == 'h') {
$msg = " PHP 伺服器幫助訊息 rnrn" .
" 若要退出,請輸入 'quit'。rn" .
" 若要關閉伺服器,請鍵入「shutdown」。rn" 。
" 若要取得協助訊息,請輸入「help」。rn" 。
“php>”;
socket_write($msgsock, $msg, strlen($msg));
繼續;
} /* 當客戶端輸入指令不存在時提示訊息 */
$talkback = "PHP: 未知指令 '$buf'.rnphp> ";
socket_write($msgsock, $talkback, strlen($talkback));
回顯“$bufn”;
而(真);
socket_close($msgsock);
}同時(真);
/* 關閉Socket連線 */
socket_close($socket);
?>