- Código: Seleccionar todo
use IO::Socket::INET;
$remote_host1="irc.red-futura.org";
$remote_port1=6667;
$socket = IO::Socket::INET->new(PeerAddr => $remote_host1,
PeerPort => $remote_port1,
Proto => "tcp",
Type => SOCK_STREAM)
or die "No pudo conectar \$socket : $! \n";
print $socket "USER weeee weeee weeee :el puto clon conectao dsd perl\nNICK elclonillo\n";
$sock2 = IO::Socket::INET->new(PeerAddr => "irc.irc-hispano.org",
PeerPort => 6667,
Proto => "tcp",
Type => SOCK_STREAM)
or die "No pudo conectar \$sock2 : $! \n";
print $sock2 "USER weeee weeee weeee :el puto clon conectao dsd perl\nNICK elclonillo2\n";
$socket -> blocking(0);
$sock2 -> blocking(0);
# estas lineas son
$leer="";
$leer2="";
while (1) {
$leer = <$socket>;
$leer2 = <$sock2>;
unless ($leer eq "") {
chop($leer);
@read=split(/ /,$leer);
if (($read[1] eq "376") || ($read[1] eq "422")) {
print $socket "join #hattrick\n";
}
if ($read[0] eq "PING") {
print $socket "pong $read[1]\n";
}
if ($read[1] eq "PRIVMSG") {
@nick=split(/!/,$read[0]);
@nick=split(/:/,$nick[0]);
$nick=$nick[1];
if ("\L$nick" eq "satonio") {
if ($read[3] eq ":!haz") {
$orden="";
for ($i=4;defined($read[$i]);$i++) {
$orden="$orden $read[$i]";
}
print $socket $orden;
}
}
}
print "\$leer = $leer\n";
$leer="";
}
unless ($leer2 eq "") {
chop($leer2);
@read=split(/ /,$leer2);
if (($read[1] eq "376") || ($read[1] eq "422")) {
print $sock2 "join #hattrick\n";
}
if ($read[0] eq "PING") {
print $sock2 "pong $read[1]\n";
}
if ($read[1] eq "PRIVMSG") {
@nick=split(/!/,$read[0]);
@nick=split(/:/,$nick[0]);
$nick=$nick[1];
if ("\L$nick" eq "satonio") {
if ($read[3] eq ":!haz") {
$orden="";
for ($i=4;defined($read[$i]);$i++) {
$orden="$orden $read[$i]";
}
print $sock2 $orden;
}
}
}
print "\$leer2 = $leer2\n";
$leer2="";
}
}
en windows no va lo de ponerlo en non-blocking pero en ubuntu si, alguien sabe k puedo hacer pa k vaya en windows
si lo preferis se puede mirar el codigo coloreao http://pastebin.com/506062