<?php
function go(){
$starttime = round(microtime(true),2);
echo "GO() ... <br />\r\n";
echo "socket_create ...";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if($socket < 0){
echo "Error: ".socket_strerror(socket_last_error())."<br />\r\n";
exit();
} else {
echo "OK <br />\r\n";
}
echo "socket_bind ...";
$bind = socket_bind($socket, '127.0.0.1', 889);//пÑивÑзÑваем его к ÑказаннÑм ip и поÑÑÑ
if($bind < 0){
echo "Error: ".socket_strerror(socket_last_error())."<br />\r\n";
exit();
}else{
echo "OK <br />\r\n";
}
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);//ÑазÑеÑаем иÑполÑзоваÑÑ Ð¾Ð´Ð¸Ð½ поÑÑ Ð´Ð»Ñ Ð½ÐµÑколÑкиÑ
Ñоединений
echo "Listening socket... ";
$listen = socket_listen($socket, 5);//ÑлÑÑаем ÑокеÑ
if($listen < 0){
echo "Error: ".socket_strerror(socket_last_error())."<br />\r\n";
exit();
}else{
echo "OK <br />\r\n";
}
while(true){ //ÐеÑконеÑнÑй Ñикл Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений
echo "Waiting... ";
$accept = @socket_accept($socket); //ÐавиÑаем пока не полÑÑим оÑвеÑа
if($accept === false){
echo "Error: ".socket_strerror(socket_last_error())."<br />\r\n";
usleep(100);
} else {
echo "OK <br />\r\n";
echo "Client \"".$accept."\" has connected<br />\r\n";
file_put_contents("res.txt", "OK ");
}
$msg = "Hello, Client!";
echo "Send to client \"".$msg."\"... ";
socket_write($accept, $msg);
echo "OK <br />\r\n";
if( ( round(microtime(true),2) - $starttime) > 100) {
echo "time = ".(round(microtime(true),2) - $starttime);
echo "return <br />\r\n";
return $socket;
}
}
}
error_reporting(E_ALL); //ÐÑводим вÑе оÑибки и пÑедÑпÑеждениÑ
set_time_limit(0); //ÐÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑкÑипÑа не огÑаниÑено
ob_implicit_flush(); //ÐклÑÑаем вÑвод без бÑÑеÑизаÑии
$socket = go(); //ФÑнкÑÐ¸Ñ Ñ Ð±ÐµÑконеÑнÑм Ñиклом, возвÑаÑÐ°ÐµÑ $socket по запÑоÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð½Ð¾Ð¼Ñ Ð¿Ð¾ пÑоÑеÑÑвии 100 ÑекнÑд.
echo "go() ended<br />\r\n";
if (isset($socket)){
echo "Closing connection... ";
@socket_shutdown($socket);
socket_close($socket);
echo "OK <br />\r\n";
}
?>
当打开带有此代码的页面时,它将开始无限加载
端口889/tcp已打开
这台机器有来自remi存储库的php 7.2,其中包含以下插件:php php mysql php gd php ldap php odbc php pear php xml php xmlrpc php mbstring php snmp php soap curl curl devel php mcrypt php pecl ap
出现这种问题的原因是什么?当连接时,什么都不会发生。