[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