PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Socket connect auf IRC server


Alamar
10.01.2002, 15:31
#!c:\programme\perl\bin\perl -w
use IO::Socket::INET;
my ($foo, $bar, $bae);
$sock = IO::Socket::INET->new(PeerAddr => ´localhost´,
PeerPort => ´6667´,
Proto => ´tcp´);
print $sock "NICK ALAMAR";
print "Sending nick: Alamar\n";
print $sock "USER ALAMAR 2 3 Alamar";
print "Sending Ident: ALAMAR\n";
while(<$sock>) {
($foo, $bar) = split(&quot; &quot;, $_);
if ($foo =~ /PING/) {
print $_;
print $sock &quot;PONG &quot; . $bar;
}
print $_;
}


Ich weiß is verdammt billig aber ich machs ja nur um die perl sockets besser zu verstehen.
Mein Problem ist folgendes:
Es wird eine Verbindung zum Server aufgebaut ich sende auch meinen NICKNAME und meine IDENT (das passt ) bloß bei PING scheint das nicht so zu klappen da ich immer wegen Ping timeout die verbindung verliere.
Ping läuft beim irc so ab:
Server sendet: PING irgendeinparameter
ich muss senden: PONG derparametervonping
und das versuche ich ja HIER:
Code

($foo, $bar) = split(&quot; &quot;, $_);
if ($_ =~ /PING/) {
print $_;
print $sock &quot;PONG &quot; . $bar;
}


Aber das funktioniert nicht deswegen wollt ich halt mal fragen ob einer ne idee hat warum, oder wie ichs besser machen koennte.


luckyhacky
09.04.2002, 22:11
hi ich würde nach dem PONG ein \n machen

Codeq
10.04.2002, 10:12
jo auf jedenfall nen \n am ende.. und manche IRCds fordern den aktuellen server als PONG antwort..
also
PONG irc.bla.de
beim euIRCnet kann man auch den hauptserver angeben... sonst muss es aber der sein auf dem man connected ist..