<?PHP set_time_limit(10); $commonProtocol = getprotobyname("tcp"); $socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol); if ($socket) { $result = socket_bind($socket, 'localhost', 1337); if ($result) { $result = socket_listen($socket, 5); if ($result) { echo "监听成功"; } } }else{ echo "监听失败"; } do { if (($msgsock = socket_accept($socket))) { /* 发送提示信息给连接上来的用户 */ $msg = "==========================================rn" . "Welcome to the PHP Test Server. rnrn" . "To quit, type 'quit'. rn" . "To shut down the server type 'shutdown'.rn" . "To get help message type 'help'.rn" . "==========================================rn" . "php>"; } socket_write($msgsock, $msg, strlen($msg)); do { $buf = socket_read($msgsock, 2048, PHP_BINARY_READ); if (false === $buf) { echo "socket_read() failed: reason: " . socket_strerror($result) . "n"; break 2; } if (!$buf = trim($buf)) { continue; } /* 客户端输入quit命令时候关闭客户端连接 */ if ($buf == 'q') { break; } /* 客户端输入shutdown命令时候服务端和客户端都关闭 */ if ($buf == 'shutdown') { socket_close($msgsock); break 2; } /* 客户端输入help命令时候输出帮助信息 */ if ($buf == 'h') { $msg = " PHP Server Help Message rnrn" . " To quit, type 'quit'. rn" . " To shut down the server type 'shutdown'.rn" . " To get help message type 'help'.rn" . "php> "; socket_write($msgsock, $msg, strlen($msg)); continue; } /* 客户端输入命令不存在时提示信息 */ $talkback = "PHP: unknow command '$buf'.rnphp> "; socket_write($msgsock, $talkback, strlen($talkback)); echo "$bufn"; } while (true); socket_close($msgsock); }while (true); /* 关闭Socket连接 */ socket_close($socket); ?>
(责任编辑:admin) |