<?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);
?>