http://qs321.pair.com?node_id=206005


in reply to Socket: I don't get what is sent

In your client, you should turn auto-flush on, by setting $| to a non-zero value. A snippet of how this would look like in your client code:
... # This message is print, so I do get here! # At the same tiome the server starts sending bars $|++; # <-- Turns on automatic flusing after each write... while (1) { $line = <SOCK>; print "\nGot1: ", $line; ...

Update: I've been playing with the code myself, and as tye pointed out in a reply below: you need to unbuffer the Client handle at server-side! This would make your server code look like this:

... $SIG{CHLD} = \&REAPER; for ( ; $paddr = accept(Client,Server); close Client) { # This will correctly set the autoflushing... select( ( select(Client), $|++ )[0] ); my($port,$iaddr) = sockaddr_in($paddr); my $name = gethostbyaddr($iaddr,AF_INET); ...
Success,

-- JaWi

"A chicken is an egg's way of producing more eggs."