Einzelnen Beitrag anzeigen

Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Prüfen ob ein Socket verbunden ist?

  Alt 19. Mär 2006, 19:40
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:
Weil die Connected-Eigenschaft nur den Zustand der Verbindung während des letzten Vorgangs wiedergibt, sollten Sie versuchen, eine Meldung zu senden oder zu empfangen, um den aktuellen Zustand zu bestimmen. Nachdem das Senden der Meldung fehlgeschlagen ist, gibt diese Eigenschaft nicht mehr true zurück.
Beachten Sie, dass dieses Verhalten vorgesehen ist. Sie können den Zustand der Verbindung nicht zuverlässig überprüfen, da die Verbindung in der Zeit zwischen der Überprüfung und dem Senden/Empfangen getrennt werden kann. Der Code sollte von einer vorhandenen Verbindung des Sockets ausgehen und fehlgeschlagene Übertragungen ordnungsgemäß behandeln.
Ich habe es nun so versucht:

Code:
byte[] jo = new byte[0];
tcpClient.Client.Receive(jo);
if (!tcpClient.Connected)
{
    tcpClient.Connect("irc.ham.de.euirc.net", 6667);
}
Wenn der Server mich(den Bot) nun disconnectet, connectet er nicht neu, weil "Connected" immer true ist irgendwie...

Hat jemand ne Idee? Ist mein Code falsch?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat