Ergebnis 1 bis 7 von 7
  1. #1
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard VB TcpClient Disconnect erkennen

    Hallo alle zusammen
    ich hab ein Problem mit Vb.Net und TcpClients...
    und zwar würde ich gerne, wie der Title schon sagt, Disconnects erkennen.
    Es geht nicht darum, wie ich ne Verbindung "richtig" schließe, sondern wie kann ich sinnvoll erkennen ob mein Gegenüber bzw der Client sich einfach beendet hat. Maybe kill per taskmanager oder einfach ausschalten des pcs (strom direkt aus).

    tcp.connected zeigt den status ja nur ahand der letzen aktion (send recive)
    zuerst dachte ich mir, ich schicke einfach einen leeren string, bzw 0 bytes über die verbindung.
    doch das scheint nicht so ganz zu klappen.
    Wie löst ihr das problem?

    Gruß Hu5eL
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

  2. #2
    W32.FunLove
    Registriert seit
    30.06.2008
    Beiträge
    120

    Standard

    1. Warum klappt das nicht?

    2. Versuche doch mal ein senden eines "PING" an alle Clients
    Dann warte nen paar sekunden, und mach 2 Arrays, und zwar die die die clients beinhalten.
    Und dann wenn ein pong kommt, halt in das 2.te Array, und vergleiche welche clients nicht antworten.

    Denn onDisconnect findet nur bei nem Guten Disconnect statt.

    Gibt es nicht etwas ala sub TCPListener.OnDisconect(byVal blah)?
    Zitat Zitat von Suicide
    Und als super Free-Hack "Veteran" wie du dich hier präsentierst, hätte dir das auch auffallen müssen.

  3. #3
    CIH-Virus Avatar von krusty
    Registriert seit
    12.10.2008
    Beiträge
    445

    Standard

    es gibt in vb.net keine ereignisse für die tcp klasse.
    ich habe das ganze so gemacht. du hast aj sicherlich irgendwo ne schleife, in der du den networkstream ausließt, um daten zu empfangen. sobald der client oder server off geht, ist der stream down und es kommt zu einem fehler. in einem try catch block kannste dir den fehler abfangen und dann weißt, dass der client/server off ist.

  4. #4
    W32.FunLove Avatar von S1024
    Registriert seit
    19.01.2010
    Beiträge
    126

    Standard

    Hi,

    Entweder das was Krusty vorschlägt, oder wenn du über einen Disconect Butten etc verfügst schicke einfach sowas wie "@Server_Me_Disconect". Beim Server einfach ne If Abfrage einbauen die nach diesem Befehl fragt.

    Grueße
    DieVar
    Deine Mutter ist wie Open Source - Jeder kann sie haben.



    http://free-hack.com/video-tutorials...tml#post524336

  5. #5
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard

    s1024 es ging darum wie ich erknne das der client sich nicht richtig ausgeloggt hat

    meine idee: ein thread, der einfach alle x sekunden nacheinander die clients durchgeht und ein ping hinsendet. jetzt das problem:

    mainprogramm sendet: "whois" (client soll also mit seinem namen antworten)
    mainprogramm wartet auf antwort (liest vom stream)
    dann sendet mein thread sowas wie: "ping"
    thread wartet auf antwort (liest auch vom stream)

    wenn jetzt ne antwort kommt, wie kann ich das dann unterscheiden, wer die antwort lesen soll?
    eigentlich solllte ja wieder pong zurückkommen

    was aber ist, wennn
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

  6. #6
    CIH-Virus Avatar von krusty
    Registriert seit
    12.10.2008
    Beiträge
    445

    Standard

    ich hab ein tut gemacht über multiconnection in vb.net, findeste in der vb.net tut sektion.
    wennde hilfe brauchst icq per pn an mich.
    du solltest eine eigene client-klasse entwerfen und dann alle verbundenen clients in einer liste abspeichern.

  7. #7
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard

    wie ich schon sagte: das ist nicht das problem.
    ich kann mehere client aufnehmen und auch wieder "ansprechen".
    jetzt würde ich gern in einer art "ping"-methode zyklisch testen ob noch alle ereichbar sind. die umsetzung ist auch nicht schwer. ich starte einfach einen thread, der die liste der clients durchgeht und nacheinander einen ping sendet und auf das pong wartet.

    dadurch das ich die methode in einem neuen thread starte kann es ja vorkommen das:
    hp = hautprogramm t1 = thread für der den ping sendet, c1 = ein client

    1: hp sendet sowas wie "sag mir deine ip" an c1 und lauscht auf dem stream um die antwort entegenzunehmen
    2. t1 sendet gleichzeitigt zu c1 "ping" und lauscht natürlich auch.
    3. c1 client antwortet auf den pingbefehl.

    Da entsteht das problem: woher weis ich auf was er zuerst antwortet etc..

    jetzige lösung. eine eigene tcpclient-klasse, die die send und recive funktionen per binäre semaphore schützt..
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

Ähnliche Themen

  1. Server Disconnect woran liegt es ?
    Von nelly3500 im Forum Netzwerke
    Antworten: 3
    Letzter Beitrag: 16.05.2010, 22:41
  2. FritzBox 24h Disconnect vermeiden
    Von FeroX1337 im Forum Router, Modems & Co
    Antworten: 20
    Letzter Beitrag: 01.03.2010, 13:13
  3. [Your Freedom] disconnect
    Von kingvisse im Forum Anonymität & Proxies
    Antworten: 7
    Letzter Beitrag: 03.01.2009, 13:18
  4. Fritz! Disconnect
    Von Gibson im Forum Windows
    Antworten: 8
    Letzter Beitrag: 27.08.2008, 20:29

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •