<?php
set_time_limit (10);
$commonProtocol = getprotobyname("tcp");
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);
ถ้า ($ ซ็อกเก็ต) {
$result = socket_bind($socket, 'localhost', 1337);
ถ้า ($ ผลลัพธ์) {
$result = socket_listen($socket, 5);
ถ้า ($ ผลลัพธ์) {
เสียงสะท้อน "监听成功";
-
-
}อื่น{
เสียงสะท้อน "监听失败";
}
ทำ {
if (($msgsock = socket_accept($socket))) { /* 发送提示信息给连接上来的用户 */
$msg = "==========================================rn " .
"ยินดีต้อนรับสู่เซิร์ฟเวอร์ทดสอบ PHP rnrn"
"หากต้องการออก ให้พิมพ์ 'quit' 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命令时候服务端和客户端都关闭 */
ถ้า ($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($ซ็อกเก็ต);
-