004
09.02.2007, 22:40 Uhr
~bellacarte
Gast
|
Zitat von FloSoft: |
Hi, damit du weißt wie groß die datei ist, solltest du die größe zuerst übertragen, dann immer "häppchen" versenden und einlesen, wie biohazard schon geschrieben. Wichtig ist jedoch immer eine Fehlerabfrage - damit dir dein Programm nicht hängen bleibt nur weil irgendwo die verbindung spinnt. Die Häppchen können schon größer sein, du kannst die größe des Sendepuffers ja abfragen (getsockopt), mehr als in den Sendepuffer reinpasst sollte man natürlich nicht auf einmal senden, und man muss die rückgabe vom send genaustens prüfen, denn da drin steht wieviel versand (also in den sendepuffer übertragen) wurde.
|
ich hab ein kleiens problem damit, das ich mit send() nur char* daten schicken kann.(sizeoffile ist ein unsigned long)
die größe der datei schicke ich vor den eigentlichen daten vorraus:
C++: |
send(sendSocket,(char*) sizeOfFile, sizeof(unsigned long), 0);
|
die will ich dann wie folgt in der receive routine annehmen:
C++: |
char sizeBuffer[10]; recv(recvSocket, sizeBuffer, sizeof(unsigned long), 0); unsigend long sizeOfFileToReceive = (int) sizeBuffer;
|
wenn ich sizeBuffer dann wieder zurück caste bleibt irgendwie nichts übrig. der wert in meinem unsigend long ist = 0;
was mach ich falsch? Dieser Post wurde am 10.02.2007 um 10:28 Uhr von FloSoft editiert. |