Я успешно создал скрипт сокета PHP. Он принимает строку и переворачивает ее.
Я хочу, чтобы скрипт работал непрерывно и принимал как можно больше строк. Вся интерактивная справка и учебник говорят, что я должен включить socket_accept в цикле. Я так и сделал, и теперь скрипт не завершается после первой входной строки, но все равно не принимает дальнейший ввод.
Мой код:
#!/opt/lampp/bin/php
<?php$host = "localhost";
$port = 3027;
$con = 1;
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die('Could not create socketn');
$result = socket_bind($socket, $host, $port) or die('Could not bind to socketn');
$result = socket_listen($socket, 3) or die('Could not set up socket listenern');
while (true)
{
$spawn = socket_accept($socket) or die('Could not accept incoming connectionn');
if(socket_getpeername($spawn , $host , $port))
{
echo "Client $address : $port is now connected to us. \n";
}$input = socket_read($spawn, 1024) or die('Could not read inputn');$input = trim($input);
$output = strrev($input) . 'n';
socket_write($spawn, $output, strlen ($output)) or die('Could not write output n');
}
socket_close($spawn);
socket_close($socket);
?>
Задача ещё не решена.
Других решений пока нет …