Я считаю, что ваша проблема в том, что выполнение никогда не покидает цикл while (true)
, а не while($line != "")
, попробуйте это:
while (true)
{
$data_old = $data;
$data = file_get_contents('userInput.txt');
if ($data_old != $data)
{
socket_write($socket, $data, strlen($data));
while (true)
{
$line = @socket_read($socket, 2048);
echo $line. "\n";
if ($line == '')
{
break 2;
}
}
}
}
Если розетка неблокирующая, вы также можете использовать socket_select()
с таймаутом.