Beste allemaal, ik ben bezig met twee scriptjes waarvan de ene een zin doorkrijgt van het andere script via socket_write en de andere socket functies.
Nu heb ik de volgende code gemaakt maar er zit een fout in die ik er niet uit kan halen.
In deze lus word elke keer gekeken of er een nieuw bericht is en zo ja, dan leest hij hem van de socket en door een echo krijg ik hem te zien.
Alleen er word om een mysterieuze reden niks neergezet.
Als ik in deze lus echo $response zet, krijg ik netjes mijn bericht, maar als ik dat later doe, buiten de lus dan gebeurt er niks??
ook komt er nooit loop done te staan?
er word ook gekeken of $response inhoud heeft, maar er komt altijd false uit.
Weet iemand waardoor dit probleem ontstaat?
Nu heb ik de volgende code gemaakt maar er zit een fout in die ik er niet uit kan halen.
PHP:
<?php
echo "Server\n";
set_time_limit(0);
$socketanswer = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_bind($socketanswer,'127.0.0.1',16765);
socket_listen($socketanswer);
socket_set_nonblock($socketanswer);
while(true)
{
while(($conn = @socket_accept($socketanswer)) !== false)
{
echo "Waiting for responses...\n";
while (true)
{
$response = '';
while ($buf = socket_read($conn,1))
{
echo "Reading message...\n";
$response .= $buf;
}
if ($response == 'quit')
{
socket_close($conn);
}
if (!$response == '')
{
echo "Message received...\n";
}
echo strlen($response);
echo $response . "\n";
unset($response);
echo "Loop done...\n";
}
}
}
?>
In deze lus word elke keer gekeken of er een nieuw bericht is en zo ja, dan leest hij hem van de socket en door een echo krijg ik hem te zien.
Alleen er word om een mysterieuze reden niks neergezet.
PHP:
while ($buf = socket_read($conn,1))
ook komt er nooit loop done te staan?
er word ook gekeken of $response inhoud heeft, maar er komt altijd false uit.
Weet iemand waardoor dit probleem ontstaat?