Fehler bei Winsock Programmierung



  • supernicky schrieb:

    Aber das RET muss auf jeden Fall in die Prozedur die der Thread ausführt?

    ja - wohin denn sonst?



  • Hallo,

    wie kann ich ein Socket prüfen ob es noch verbunden ist?

    Nicky



  • Wird hier ganz gut erklärt



  • Hallo,

    Dank solcher Antworten könnte man jedes Forum schließen...

    Ich habe einiges unternommen um eine passende Antwort zu bekommen.
    Selbst auf der MSDN Seite habe ich nichts gefunden.

    In VB kann man mit einer IF Abfrage schauen ob eine Verbindung besteht.

    if socket.connected = false then...
    // hier der Code wenn nicht verbunden
    end if

    Für C hab ich nichts vergleichbares gefunden.

    Bis zu deiner grandiosen Antwort hab ich mir aber auch schon was überlegt..
    Ich versuche das erstmal und hoffe hier nicht mehr viel Fragen zu müssen...

    Nicky



  • getsockopt(SO_CONNECT_TIME).
    Gibt -1 zurück, wenn der Socket getrennt ist.



  • Ob eine TCP-Verbindung noch besteht kannst du nur testen indem du etwas sendest.



  • ok...

    wenn der Befehl send() -1 zurück gibt, dann ist wohl keine Verbindung mehr vorhanden...

    Nun nochwas...

    Weiß jemand wie man die eigene IP mit der WinAPI ermittelt?
    Es gibt dort einige Funktionen wie gethostbyname ode getaddrinfo, aber ich weiß nicht wo in den ganzen Strukturen sich dann die IP versteckt.

    Gibt es irgendwo ein Beispiel in dem es nur um die lokale IP geht, ich brauch keine Alias- oder Service Infos von meinem Socket.

    Danke und Gruß

    Nicky



  • Irgendwie bewegst du dich hier langsam etwas vom Thema Assembler weg. Wenn du Fragen zur Win-API hast, bekommst du in unserem Win-API-Forum bestimmt sehr viel schneller bessere/ausfuehrlichere Antworten als hier. Wenn du dann noch Fragen/Probleme mit der konkreten Umsetzung in Assembler hast, bist du dagegen hier richtig...

    Kann dir davon ab leider jetzt nicht konkret weiterhelfen, da ich in dem Thema nicht drinstecke und zu faul bin, nachzuschlagen.



  • Hallo nochmal,

    ich habe wohl eine Mischung aus beiden vor mir liegen, da auch noch das auslesen der einzelnen Daten hinzukommt.

    Ich versuch es mal drüben...

    Trotzdem Danke



  • > wenn der Befehl send() -1 zurück gibt, dann ist wohl keine Verbindung mehr vorhanden...

    Oder es ist etwas anderes schief gelaufen. Du müsstest dann mindestens WSAGetLastError() überprüfen.


Anmelden zum Antworten