Stream and networking programming seems like a rock on the way to
ZCE for most people, so I'm learning some socket examples before I sit
in the room for exam.
Here is the script for server

<?php
$socket = stream_socket_server("tcp://127.0.0.1:1037", $errno, $errstr);
if(!$socket)
{
        echo "$errstr ($errno) \n";
}
else
{
        while($conn = stream_socket_accept($socket))
        {
                echo "New connection \n";
                fwrite($conn, "Hello World \n");
                fwrite($conn, "Do you want to close server? Yes(Y)/No(N) \n");
                if(!feof($conn))
                {
                        $answer = fread($conn, 1);
                        if($answer == 'Y')
                        {
                                echo "User choose to close server. \n";
                                break;
                        }
                        elseif($answer == 'N')
                        {
                                echo "Service continue... \n";
                        }
                        else
                        {
                                echo "Unknown answer '$answer'. \n";
                        }
                }
                fclose($conn);
        }
        fclose($socket);
}

and the client

<?php
$socket = stream_socket_client('tcp://127.0.0.1:1037', $errno, $errstr);
if(!$socket)
{
        echo "$errstr ($errno) \n";
}
else
{
        $answer = "Y";// fgets(STDIN)
        fwrite($socket, $answer);
        while(!feof($socket))
        {
                echo fread($socket, 100);
        }
}

everything works, but if I write after read in client

<?php
$socket = stream_socket_client('tcp://127.0.0.1:1037', $errno, $errstr);
if(!$socket)
{
        echo "$errstr ($errno) \n";
}
else
{
        while(!feof($socket))
        {
                echo fread($socket, 100);
        }
        $answer = "Y";// fgets(STDIN)
        fwrite($socket, $answer);
}

server&client hangs after output and time out later.

Can any1 point out whats the reason and the more correct way to get
socket client input in socket server?

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to