Home >Backend Development >PHP Tutorial >PHP listening Socket_PHP tutorial

PHP listening Socket_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:36:011188browse

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 = "========================================== " .
   "Welcome to the PHP Test Server. " .
   "To quit, type quit. " .
   "To shut down the server type shutdown. " .
   "To get help message type help. " .
   "========================================== " .
   "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) . " ";
    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 " .
    " To quit, type quit. " .
    " To shut down the server type shutdown. " .
    " To get help message type help. " .
    "php> ";
    socket_write($msgsock, $msg, strlen($msg));
    continue;
   } /* 客户端输入命令不存在时提示信息 */
   $talkback = "PHP: unknow command $buf. php> ";
   socket_write($msgsock, $talkback, strlen($talkback));
   echo "$buf ";
} while (true);
socket_close($msgsock);
}while (true);
/* 关闭Socket连接 */
socket_close($socket);
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/508282.htmlTechArticle?php set_time_limit(10); $commonProtocol = getprotobyname("tcp"); $socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol); if ($socket) { $result = socket_bind($socket, loca...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn