#!C:/perl/bin/perl -w use strict; use warnings; my $cvs_version = sprintf "%d.%03d", q$Revision: 1.4 $ =~ /(\d+)\.(\d+)/; $| = 1; use IO::Socket; use Net::hostent; my $PORT = 9001; my $server = IO::Socket::INET->new( Proto => 'tcp', LocalPort => $PORT, Listen => 1, ReuseAddr => 1, ); die "can't setup server... $!... $@..." unless $server; print "[Server $0 accepting clients]\n"; my $num = 'a'; $num = ioctl($server, 0x8004667e, 1); print "ioctl return code was [$num]\n"; #returns undef sleep 1; while (my $client = $server->accept()) { $client->autoflush(1); $num = 'a'; $num = ioctl($server, 0x8004667e, 1); print "ioctl return code was [$num]\n"; #returns undef print $client "Welcome to $0; type help for command list.\n"; my $hostinfo = gethostbyaddr($client->peeraddr); printf "[Connect from %s]\n", $hostinfo ? $hostinfo->name : $client->peerhost; print $client "Command? \n"; sleep 1; while (defined ($_ = <$client>) ){ print STDOUT $_; next unless /\S/; # blank line if (/quit|exit/i) { last; } elsif (/date|time/i) { printf $client "%s\n", scalar localtime; } elsif (/hello/i ) { print $client "G'day there\n"; } else { print $client "Commands: quit date hello\n"; } } continue { print $client "Command? \n"; } close $client; }