# write on the socket to server.
$_=join(' ',$status,$md,$md_others);
@data=split(" ",$_);
foreach $_(0..$#data)
{
print $socket $data[$_];
}
#untested pseudo code
my $data;
$socket->recv(data,1024); # from perldoc IO::Socket
print $data;
$socket->close();
####
while( $select->can_read){}
####
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my ( $host, $port, $kidpid, $handle, $line );
( $host, $port ) = ('localhost',15005);
my $name = shift || '';
if($name eq ''){print "What's your name?\n"}
chomp ($name = <>);
# create a tcp connection to the specified host and port
$handle = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => $host,
PeerPort => $port
)
or die "can't connect to port $port on $host: $!";
$handle->autoflush(1); # so output gets there right away
print STDERR "[Connected to $host:$port]\n";
# split the program into two processes, identical twins
die "can't fork: $!" unless defined( $kidpid = fork() );
# the if{} block runs only in the parent process
if ($kidpid) {
# copy the socket to standard output
while ( defined( $line = <$handle> ) ) {
print STDOUT $line;
}
kill( "TERM", $kidpid ); # send SIGTERM to child
}
# the else{} block runs only in the child process
else {
# copy standard input to the socket
while ( defined( $line = ) ) {
print $handle "$name->$line";
}
}