Thanks for all hints so far...
I've got the following to work now using IO::Select
Properly send & receive to and from server.
I can esablish a DCC connection over additional socket, but then I only get the data from the DCC socket, and no-longer the data from the server socket, untill the DCC socket is closed.....
$con = IO::Socket::INET->new(PeerAddr=>"$server",
PeerPort=>"$port",
Proto=>'tcp',
Timeout=>'30') || print "Error! $!\n";
$select = IO::Select->new($con);
while(@ready = $select->can_write) {
for $socket (@ready) {
#The DCC Connection
if($socket == $dcc) {
$talk = <$dcc>;
print $talk;
#The Server Connection
} elsif ($socket == $con) {
$answer = <$con>;
print $answer; # echo everything that comes from the server t
+o screen
#lots of other stuff here
if ($answer =~ /:(.*)\!.* PRIVMSG $me :\001DCC CHAT chat (\d+) (
+\d+)\001\r\n/) {
print "Received dcc from $1 with $2 and $3\n";
$dcc = IO::Socket::INET->new(PeerAddr=>"$2",
PeerPort=>"$3",
Proto=>'tcp',
Timeout=>'30') || print "Error! $
+!\n";
print $dcc "Please Enter Your Password!\n";
$select = IO::Select->new($dcc);
}
} else {
print "more stuff to come here"
}
}
}
|