Imediatly after I execute the script I get one of the
"disconected" messages that are printed when
$sock->connected() no longer equals $server. 

"connected
    If the socket is in a connected state the the peer
address is returned. If the socket is not in a
connected state then undef will be returned."

#!/usr/bin/perl

use IO::Socket;
use threads;
use threads::shared;

use strict;
use warnings;

my $port = 80; 
my $connected : shared; 
my $user : shared; 
my $sender;        
my $receiver;  
my $checker;  
my $sock;               
my $skey;               
my $server : shared;    

print "Enter username: ";
$user = <>;
chomp $user;

print "Enter server: ";
$server = <>;
chomp $server;

$sock = IO::Socket::INET->new(
        PeerAddr => $server,
        PeerPort => $port,
        Proto => "tcp",
        Type => SOCK_STREAM) or die "Cannot connect to
remote host";

if (login($user, $skey)){
    $connected = 1;
}else{
    $connected = 0;
    shutdown($sock, 2);
    exit;
}

#$checker = threads->new(\&checker);
$sender   = threads->new(\&sender);
$receiver = threads->new(\&receiver);

while($connected){}
sleep 4;

shutdown($sock, 2);

sub login {
    #put handshaking stuff here
    return 1;
}

sub logoff {
    #put exiting stuff here
    $connected = 0;
}

sub sender {
    my $msg;
    while($connected){
        if($sock->connected() eq $server){
            $msg = <>;
            if($msg eq "^quit"){
                logoff;
            }else{
                print $sock $msg;
            }
        }else{
            print "Disconected1";
            $connected = 0;
        }
    }
}

sub receiver {
    my $msg;
    while ($connected){
        if( $sock->connected() eq $server){
            $msg = <$sock>;
            print $msg;
        }else{
            print "Disconected2";
            $connected = 0;
        }
    }
}

sub checker { #not currently in use
    while ($sock->sockhost() eq $server){}
    print "Disconected\n";
    $connected = 0;
    sleep 2;
    shutdown($sock, 2);
}



        
                
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - You care about security. So do we. 
http://promotions.yahoo.com/new_mail

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to