PHP套接字服务器不响应我的共享主机帐户上的客户端连接


PHP socket server doesn't react to client connections on my shared hosting account

在我的共享主机帐户public_html目录下,我有一个php文件,其中包含用于创建套接字服务器的代码。

<?php
set_time_limit(0);
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);             
$ret = socket_bind($sock, 'localhost', 80);             
$ret = socket_listen($sock);           
$msgsock = socket_accept($sock);
socket_write($msgsock, " hello");
?>

当我用浏览器打开该php文件或将其作为命令运行时,套接字服务器等待客户端连接,之后代码应该向客户端发送"hello"并完成执行。我知道实际的套接字服务器必须有一个循环,这样它才能正常工作,但这段代码只是用于测试。public_html中还有一个php客户端文件

<?php
set_time_limit(0);
$mysocket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);             
$result = socket_connect($mysocket, 'localhost', 80);               
if ($result === false) { 
echo "error"; 
} else { 
echo "successfully connected"; 
} 
$input = socket_read($mysocket,1024);
echo $input;
?>

,当我在浏览器中打开它时,它成功地连接到端口80上的localhost,即使php服务器文件没有运行。但是,当php服务器文件正在运行并等待客户端连接时,即使客户端文件成功连接到localhost,它也会继续运行,尽管没有收到"hello"。当我使用apache服务器在我的计算机上尝试同样的事情并通过Internet从另一台计算机运行这些文件时,它工作了,即服务器文件接受客户端,发送"hello"并完成执行。那么,php套接字服务器不响应我的共享主机帐户上的客户端连接的原因是什么呢?提前感谢

使用80以外的端口进行侦听。它可能无法创建服务器,因为web服务器运行在端口80上。