send () sendet nicht EDIT: und wie man erfährt, dass sich der client, oder der server getrennt hat



  • Ich mal wieder.
    Ich weiß zwar nicht warum, aber send() sendet bei mir nicht:

    send (sSend, sends, 5100, 0);
    

    Als Fehler-Meldung kommt immer nur:

    10038
    

    Der Server empfängt die Daten über einen Thread, der mit einer Endlosschleife aus recv() und einer Funktion zum hinzufügen des Textes ausgestattet ist. Ich weiß wirklich nicht woran das liegt, ich habe auch schon eine ganze Weile probiert, aber es klappt einfach nicht...

    Mfg Ominion



  • Ominion schrieb:

    10038
    

    das ist 'WSAENOTSOCK' d.h. sSend hat einen ungültigen wert (kein socket). entweder das war nie einer oder du hast ihn vielleicht schon gelöscht mit 'closesocket()' oder überschrieben irgendwie....



  • Ich habe den Socket jetzt direkt vor send()

    SOCKET sendsocket;
    send (sendsocket, pufa, 5100, 0);
    

    Es kommt immer noch der gleiche Fehler:

    10038
    

    EDIT: muss der Socket von send () der Socket der aktuellen Verbindung sein?



  • Ominion schrieb:

    SOCKET sendsocket;
    send (sendsocket, pufa, 5100, 0);
    

    wenn's so da steht ist 'sendsocket' nicht initialisiert. du brauchst einen socket, mit dem man auch senden kann (output von 'connect' oder 'accept' oder sowas).



  • Jo das habe ich ja im Edit gefragt.
    Gut danke, klappt jetzt wunderbar...

    Mfg Ominion



  • Da ich keinen neuen Thread eröffnen wollte, hänge ich das hier ran:
    Wie kann ich herausfinden, dass der Client bzw der Server sich getrennt hat? Also egal ob der Pc abgestürzt ist oder er das Programm beendet hat



  • sowas kriegste z.b. mit durch den rückgabewert von send bzw. recv. ist der SOCKET_ERROR, dann ist was faul mit der verbindung (bei blocking sockets). was genau los ist, kannste dann mit 'WSAGetLastError()' abfragen...



  • Ohhh...ich dachte das wäre komplizierter, danke ich probiere es.

    EDIT: Klappt wunderbar...


Anmelden zum Antworten