![]() |
IRC mit TClientSocket reconnected nicht?
Hallo,
ich kriegs einfach nicht hin, dass mein "IRC-Bot" nach einem Disconnect (z.B. 24h dissi) automatisch reconnected. OnError und OnDisconnect habe ich beides probiert - sogar nen 5 Sekunden Delay zwischen .Active:=false; und .Active:=true; gemacht. Habs auch mit .Close; und .Open; probiert - nichts geht, aber warum? Bitte um Hilfe, vielen Dank schonmal, Thehandyplanet. |
Re: IRC mit TClientSocket reconnected nicht?
Ich kann dir nur sagen, das es bei mir problemlos geht. (OnDisconnect)
|
Re: IRC mit TClientSocket reconnected nicht?
Zeig mir bitte mal deinen Code, hmm, kann ja net sein dass es nur bei mir so ist.
Mein Code:
Code:
Danke,
procedure TDummy.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket); begin ClientSocket1.Close; Delay(5000); ClientSocket1.Open; end; Thehandyplanet. |
Re: IRC mit TClientSocket reconnected nicht?
Was eventuell noch zu erwähnen wäre -> er soll auch bei Excess Flood reconnecten :)
|
Re: IRC mit TClientSocket reconnected nicht?
Hallo Thehandyplanet,
bei einem "richtigen" Disconnect wie er beim Excess Flood stattfindet, endet ganz normal im "OnDisconnect", andernfalls, z.b wenn das kabel getrennt wird etc, landet es im OnError. |
Re: IRC mit TClientSocket reconnected nicht?
Hmm.. schau mal bitte meinen Code an und vergleiche ihn dann mit deinem.
//übrigens: Ich hatte den Code auch schon in OnDisconnect UND onError :( Danke, Thehandyplanet |
Re: IRC mit TClientSocket reconnected nicht?
Moin Thehandyplanet,
das "Close;" ist auf jeden Fall falsch, denn wenn "OnDisconnect" aufergrufen wird, ist der Socket bereits geschlossen. Das das "Open;" nicht funktioniert, könnte daran liegen, dass es im OnDisconnect ist, d.h solange das "Socket" Objekt noch nicht freigegeben ist, geht das Open nicht. Im "OnShow" z.b kann man ja auch kein "Hide;" usw ausführen ;). Ich weiss nicht ob es so ist, aber es müsste so sein. in Meinem COde führe ich keinen Connect direkt nach nem Disconnect aus, habe die Frage wohl nur halb gelesen oben :oops: . Wenn das o.g der Fall sein sollte, dann bringt auch dein Delay nichts, da es sein kann, das die "OnDisconnect" prozedur erst verlassen werden muss bevor du open aufrufen kannst. |
Re: IRC mit TClientSocket reconnected nicht?
Sozusagen, onDisconnect ne andere Prozedur aufrufen?
|
Re: IRC mit TClientSocket reconnected nicht?
Das Problem dabei ist, das wenn du von der Prozedur aus eine andere aufrufst, das diese sich erst beendet nachdem die aufgerufene zuende ist.
|
Re: IRC mit TClientSocket reconnected nicht?
Hmm, zeig doch bitte mal dein OnDisconnect-Code, ich kriegs auch mit ner Prozedur nicht hin. Und zu deinem letzten Post -> Eventuell ein Thread? (BeginThread)
//Edit: ahahahaha, wie geil! Wenn ich den reconnect in nem Thread starte gehts!! DANKE DIR!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr. |
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