CSocket



  • Hallo,
    ich versuch mich gerade an Netzwerkprogrammierung mittels MFC.
    Nun hab ich folgendes Prob:
    CSocket::send() liefert mir als ergebnis die anzahl der übertragenden daten.
    dieses ergebnis stimmt auch mit der tatsächlichen blockgröße der zu übermittelnden daten überein. allerdings empfängt mein Test-Server selten das komplette packet. ich hab schon zig seiten abgeklappert, aber nirgendwo hab ich eine lösung gefunden. woran kann es liegen?

    PS: is ein STREAM-Socket und der server läuft auf localhost
    PPS: Wenn ich NACH dem send() AfxMessageBox("bla"); aufrufe ist das Paket vollständig beim Server angekommen!?



  • willst du, daß die Oberfläche bei deinen Netzwerkaktivitäten nicht ansprechbar ist ?
    Wenn nein dan verwende CAsyncSocket.
    Wie es geht.

    VC++ 6 in 21 Tagen.

    www.mut.de -> leseecke



  • Hi,

    wenn ein Packet zu groß ist um es im ganzen zu übertragen, wird es von der Netzwerkseite in kleinere "Häppchen" aufgeteilt. Die Netzwerksoftware des OS definiert was die maximale Packetsize ist. Gehen die Daten noch über mehrere Server kann das Packet auch dort noch weiter aufgeteilt werden.
    Die Empfängerseite muss ggf. mehrmals ein read durchführen bis alle Daten eingegangen sind.

    Vielleich kann auch dieser Link hilfreich sein:
    http://www.c-worker.ch/tuts/wstut_op.html

    Gruss René


Anmelden zum Antworten