in reply to IO::Socket connect fails to block
Works as expected: both "yes" and "no" are correctly outputted even though only one client is connected at a time.use strict; use warnings; use IO::Socket::INET; sub server { my $server = IO::Socket::INET->new( LocalPort => 12000, Proto => 'tcp', ReuseAddr => 1, Listen => SOMAXCONN ); die $! unless $server; while (my $sock = $server->accept) { print "Connected to $sock\n"; print while <$sock>; } } sub client { my $sock = new IO::Socket::INET( PeerAddr => '127.0.0.1', PeerPort => 12000, Proto => 'tcp', Blocking => 1 ); print $sock "yes\n"; print $sock "no\n"; print "sock is $sock\n"; } fork || server(); fork || client(); fork || client(); sleep 100;
There must be something in my code that's eating the additional lines of text.
Sigh. Thanks for letting me talk this out! :)
mr.nick ...
|
|---|