Socket Verbindung - unvollständige Übertragung (war: Socket Verbindung)
-
Hallo zusammen
Ich soll ein Programm schreiben, womit ein NetzwerkSwitch getestet werden soll.
Dazu werden 2 PCs verwendet mit jeweils 4 Netzwerkkarten.
Nun soll von PC A Daten an PC B geschickt werden und wieder zurück.Ich habe über den ServerSocket bzw ClientSocket eine Verbindung der beiden Rechner aufgebaut, ich kann auch Daten schicken und empfangen. Allerdings würde ich gerne 1MB von a nach b schicken.
Dazu habe ich 1MB reserviert und mit einem ASCII Muster vollgeschrieben.
Wenn Client und Server auf einem PC laufen, wird auch alles übertragen, jedoch auf zwei verschiedenen PC kommt immer nur die hälfte an.Hier die SendeRoutine des Clients
BYTE *bData; bData = (BYTE *) malloc(sizeof (BYTE) *1048576); // sollte 1MB sein void __fastcall TForm1::Button4Click(TObject *Sender) { ClientSocket1->Socket->SendBuf(bData , 1048576); }Empfangen am Server, und in ein MemoFeld schreiben
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { Memo1->Lines->Add(Socket->ReceiveText()); }Kann mir jemand mal das Blocking bzw NonBlocking erklären, bin aus der Hilfe nicht ganz schlau geworden.
Vielen Dank für eure Hilfe.
MfG Stephan
Edit:
Bitte aussagekräftige Überschriften wählen. Danke!
-
Siehe FAQ unter "Netzwerk - grosse Datenmengen".