000
01.07.2005, 15:22 Uhr
~KINK_LEO
Gast
|
Hi Leute Ich habe da einen kleinen Server und Client geschrieben und bin da auf ein Problem gestossen ...... So im grunde läuft alles zu meiner Zufriedenheit aber ein Problem plagt mich schon mehr als ein 1/2 Jahr das ich dann umgangen habe... Unzwar Kommunitieren die beiden immer abwechselnd Client stell eine Anfrage Server nimmt diese an.
Das PROBLEM : wenn der Server 2 mal Sendet also : send ( sock,"Beginne Verarbeitung ...",strlen("Beginne Verarbeitung ..."),0); . . . ( VERARBEITUNG ) . int senddata = send ( sock,erbgebnis-structur,sizeof(erbgebnis-structur),0);
dann ist der Return wert vom senden ok aber der Client empfangt nur einen bruchteil. Das Komische immer den Selben bruchteil um genau zusein der Server sendet 672 Bytes der Client empfangt 512 immer !
Wenn ich das ganze dann so ändere :
send ( sock,"Beginne Verarbeitung ...",strlen("Beginne Verarbeitung ..."),0); . . . ( VERARBEITUNG ) . int recv( sock,buffer,10,0); // Client sendet "OK" int senddata = send ( sock,erbgebnis-structur,sizeof(erbgebnis-structur),0);
Dann funzt das :-?
Die erste überlegung ist natürlich das flushen der Buffers ( fflush(NULL ) ) bringt aber nichts...
Dann habe ich mir eine recv_packed funktion geschrieben warted mit select und empfängt Bytesweise timeout 30 sec biringt genauso wenig .
Bin eigentlich ganz fitt in socketprogrammierung also ein DAU Fehler ist ausgeschlossen ....
Bin für jede anregung Dankbar also bis denne .... LEO |