[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-general
Subject:    Re: [PHP] Yet another socket question...
From:       René_Fournier <rene () smartslitters ! com>
Date:       2003-07-31 21:43:03
[Download RAW message or body]

On Thursday, July 31, 2003, at 02:45  PM, Chris Shiflett wrote:

> --- René_Fournier <rene@smartslitters.com> wrote:
>> Is it normal for a socket server to output all the echo'd
>> messages only after the socket terminates?
>
> Can you explain what situation you're trying to describe? For example, 
> echo
> does not write to a socket, so there's more going on than you're 
> telling us.

I know, but I'm not talking about writing to the socket, just echoing 
to the local Server command line. I would expect the echo'd text to 
appear in the server terminal window as the script runs--but it only 
appears when the server terminates. Here's the code:

<?

set_time_limit (0);
$host = "192.168.0.77";
$port = 1234;
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not 
create
socket\n");
$result = socket_bind($socket, $host, $port) or die("Could not bind to
socket\n");
$result = socket_listen($socket, 3) or die("Could not set up socket
listener\n");

echo "Waiting for connections...\n";

$spawn = socket_accept($socket) or die("Could not accept incoming
connection\n");

echo "Received connection request\n";

$welcome = "Welcome!\n> ";
socket_write($spawn, $welcome, strlen ($welcome)) or die("Could not send
connect string\n");

$input = socket_read($spawn, 1024) or die("Could not read input\n");
socket_write($spawn, strrev($input), strlen ($input)) or die("Could not 
send\n");
socket_close($spawn);

socket_close($socket);
echo "Socket terminated\n";

?>



(Now I start the server:)
[Valhalla:~] rene% /usr/local/php/bin/php socket5.php4



(In another terminal window:)
[Valhalla:~] rene% telnet 192.168.0.77 1234
Trying 192.168.0.77...
Connected to 192.168.0.77.
Escape character is '^]'.
Welcome!
 >


(Now, even though the server is running and a socket is connected, the 
server window does not echo "Waiting for connections...".)



In the client window, I type:
 > Hello world

dlrow olleHConnection closed by foreign host.
[Valhalla:~] rene%


(Now something happens in the server window:)
[Valhalla:~] rene% /usr/local/php/bin/php socket5.php4
Waiting for connections...
Received connection request
Socket terminated
  [Valhalla:~] rene%






(But when you look at the source code, shouldn't the "Waiting for 
connections" display as soon as the server is running, or at least when 
I try to telnet to it? Why would it wait until terminated??)



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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic