我正在学习并尝试理解 php 中的套接字,但我对 while 循环有一点问题。
这是我的基本代码:
客户端
<?php
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$res = socket_connect($socket, '127.0.0.1', 2000);
$input = "Client to Server Message";
socket_write($socket, $input, strlen($input));
$res = socket_read($socket, 1024);
echo $res;
socket_close($socket);
?>
和服务器端
<?php
set_time_limit(0);
$address = "127.0.0.1";
$port = 2000;
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, $address, $port) or die("Can't bind the socket");
socket_listen($socket);
echo "Server waiting connexion...";
$client = socket_accept($socket);
$input = socket_read($client, 1024);
echo "\nInput : ".$input;
$output = 'Server to Client Message';
socket_write($client, $output);
socket_close($client);
socket_close($socket);
echo "\nServer closed";
?>
它可以工作,但是如果我想在服务器端添加一个while循环来处理来自客户端的多条消息,我的浏览器会执行一个无限循环,我无法从服务器获取消息。
我必须怎么做才能得到这个作品?
有人可以向我解释仅使用带有 PHP的套接字进行类似聊天的基本方法(我可以使用 socket.io 和 NodeJs 进行此操作)或将我发送到网络上的一个很好的教程吗?