in reply to Quick Question about Server and Clients!

See the perl socket examples at UNO perl examples. They explain it from the very basic level, and you should move up to using higher level perl moules like IO::Socket and IO::Select. However, it is useful to know how to do it the hard way :-)

Here is one tip that gets most beginners, your client should fork or thread itself off, so it can handle bi-directional socket flow seamlessly, without having to use the send and recv modes of IO::Socket. Here is the basic client to get you started, the $name thing is there for no essential reason except to identify clients, you don't need it. :-)

A basic client:

#!/usr/bin/perl -w use strict; use IO::Socket; my ( $host, $port, $kidpid, $handle, $line ); ( $host, $port ) = ('localhost',1200); 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 = <STDIN> ) ) { print $handle "$name->$line"; } }

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh