![]() |
Prüfen ob ein Socket verbunden ist?
Moin,
also es geht erstmal um folgendes: Ich möchte einen Bot schreiben, der wenn er vom Server getrennt wird, immer wieder versucht neu zu verbinden - unendlich, bis es eben klappt. In meiner endlosen while Schleife muss ich ja irgendwie prüfen, ob der Socket bereits verbunden ist oder nicht, Microsoft meinte dazu: Zitat:
Code:
Wenn der Server mich(den Bot) nun disconnectet, connectet er nicht neu, weil "Connected" immer true ist irgendwie...
byte[] jo = new byte[0];
tcpClient.Client.Receive(jo); if (!tcpClient.Connected) { tcpClient.Connect("irc.ham.de.euirc.net", 6667); } Hat jemand ne Idee? Ist mein Code falsch? |
Re: Prüfen ob ein Socket verbunden ist?
Hallo Mario,
wäre es nicht geschickter anstatt Receive() ab und zu ein IRC PING an den Server zu schicken um den Verbindungszustand zu überprüfen? Zumindest interpretiere ich den Microsoft-Text so. Grüße vom marabu |
Re: Prüfen ob ein Socket verbunden ist?
Moin marabu,
das würde zu lange dauern, ich muss sofort wissen, wann der Server die Verbindung getrennt hat, deswegen benutz ich immer "Receive" und lese 0 Bytes.... Nach Microsoft sollte nach Aufruf einer solchen Methode, "Connected" den "wahren" Wert haben... hat es aber nicht :(, da immernoch "True" nachdem die Verbindung vom Server beenden worden ist. |
Re: Prüfen ob ein Socket verbunden ist?
Ich vermute, dass zum Empfangen von 0 Bytes der Server nicht kontaktiert wird - beim Senden eines PING aber schon.
marabu |
Re: Prüfen ob ein Socket verbunden ist?
Moin marabu,
würde ich aber in einer whileschleife was an den server senden, würde ich ihn ja regelrecht zuflooden. hmpfff |
Re: Prüfen ob ein Socket verbunden ist?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 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