Reputation: 86
I want to show $input
from the client using echo
on the server side.
PHP Server:
<?php
$socket = stream_socket_server("tcp://127.0.0.1:8000", $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)<br />\n";
} else {
while ($conn = stream_socket_accept($socket)) {
$input = fread($conn, 1024);
echo $input;
fwrite($conn, 'Wait for a while... ' . $input);
fclose($conn);
}
fclose($socket);
}
fwrite()
successfully writes $input
to client but echo $input
displaying nothing.
Upvotes: 3
Views: 171
Reputation: 2579
You should use flush()
:
<?php
$socket = stream_socket_server("tcp://127.0.0.1:8000", $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)<br />\n";
} else {
while ($conn = stream_socket_accept($socket)) {
$input = fread($conn, 1024);
echo $input;
ob_flush();
flush();
fwrite($conn, 'Wait for a while... ' . $input);
fclose($conn);
}
fclose($socket);
}
Upvotes: 4