Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdIRC: Ping Timeout nach 2-3 min? (https://www.delphipraxis.net/23108-idirc-ping-timeout-nach-2-3-min.html)

Basic-Master 28. Mai 2004 20:34


IdIRC: Ping Timeout nach 2-3 min?
 
Hi,
ich arbeite inmoment mit der indy irc komponente, wenn ich allerdings 2-3 min nichts sage, gibts n quit wegen ping timeout. was kann ich dagegen tun? ich hab die onpingpong-procedure gesehen, allerdings weiss ich nicht wie man einen pong senden kann :|

_master_ 28. Mai 2004 21:01

Re: IdIRC: Ping Timeout nach 2-3 min?
 
hi, vielleicht hilft dir das [TClientSocket] :

Delphi-Quellcode:
..
var
s:string; i:integer; sl:TStringList;
begin
sl:=tstringlist.create;
sl.text:=socket.receivetext;
for i:=0 to sl.count-1 do
begin
s:=sl.strings[i];
  If Pos('PING', s)<>0 Then begin
        s[Pos('PING', s)+1]:='O';
        cs.Socket.SendText(s+#13#10);
  end;
  if Pos('376', s)<>0 then
  begin
        cs.socket.SendText('JOIN #testchannel'+#13#10);
  end;
end;
..

Basic-Master 28. Mai 2004 21:39

Re: IdIRC: Ping Timeout nach 2-3 min?
 
hmm thx, nur wenn ich das an den server sende, krieg ich die fehlermeldung hier:
Zitat:

[22:40] Error: *meinnick* :No origin specified
:?

_master_ 28. Mai 2004 21:54

Re: IdIRC: Ping Timeout nach 2-3 min?
 
zuerst ja nick geben oder?

Delphi-Quellcode:
//On Connect
Socket.sendtext('USER abc '+cs.socket.localhost+' '+cs.socket.localaddress+' :test'+#13#10);
socket.SendText('NICK abc'+#13#10);
//nick ist dann abc

Basic-Master 29. Mai 2004 11:22

Re: IdIRC: Ping Timeout nach 2-3 min?
 
hmm thx, hab gerade nochma nachgeguckt, dein code wird beim onconnect schon ausgeführt (gerade nachgeguckt), jetz sende ich beim onconnect ein PING und es funzt :) thx :P

Basic-Master 29. Mai 2004 12:00

Re: IdIRC: Ping Timeout nach 2-3 min?
 
hmm :roll: hab gerade nochma ins irc geguckt und wieder ping timeout.. allerdings erst nach 10 min.. muss ich irgentwo ein timer stellen der alle x sekunden PING sendet?

_master_ 29. Mai 2004 13:37

Re: IdIRC: Ping Timeout nach 2-3 min?
 
So muss es funktionieren
Delphi-Quellcode:
//on read
procedure TMainForm.csRead(Sender: TObject; Socket: TCustomWinSocket);
var
s:string; i:integer; sl:TStringList;
begin
sl:=tstringlist.create;
sl.text:=socket.receivetext;
for i:=0 to sl.count-1 do
begin
s:=sl.strings[i];
  If Pos('PING', s)<>0 Then begin
        s[Pos('PING', s)+1]:='O';
        cs.Socket.SendText(s+#13#10);
  end;
  if Pos('376', s)<>0 then
  begin
        cs.socket.SendText('JOIN #testchannel'+#13#10);
  end;
end;

//on connect
procedure TMainForm.csConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
Socket.sendtext('USER abc '+cs.socket.localhost+' '+cs.socket.localaddress+' :test'+#13#10);
socket.SendText('NICK abc'+#13#10);
end;

Pseudemys Nelsoni 29. Mai 2004 14:44

Re: IdIRC: Ping Timeout nach 2-3 min?
 
ihr solltet euch mal die RFC's durchlesen

@Basic-Master:
du musst immer dann einen PONG(nicht PING!) senden, wenn der Server dir einen PING sendet, das kannst du im onRaw Ereignis abfangen!!

der server sendet den ping um zu gucken ob du überhaupt noch da bist, was der fall ist wenn PONG zurückkommt

sharkx 29. Mai 2004 14:51

Re: IdIRC: Ping Timeout nach 2-3 min?
 
nur mal so nebenbei...
a.) die Indy kompo schickt schon ein pong zurück!
b.) nen pong zurück senden musst du also nur bei TClientSocket
x.) Indy IdIRC is mist

Pseudemys Nelsoni 29. Mai 2004 14:52

Re: IdIRC: Ping Timeout nach 2-3 min?
 
*zustimm*


hab ganz vergessen das es hier um die indys geht :roll:
obwohl in onraw erwähnte :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz