Datein in 128 Byte Blöcken verschicken
-
Hallo zusammen.
Erst einmal vorweg, ich programmiere jetzt seit Ende Oktober in C. C Programmierung wurde dieses Semester an meiner Uni vorrausgesetzt, aber da ich noch nicht all zu viel Erfahrung mit C gemacht habe, kann es vor kommen, dass doch recht einfache Dinge mich vor Probleme stellen können.
Ich habe ein kleines Problem. Ich habe einen kleinen Webserver geschrieben, der anfragen auf eine .jpeg datei mit einem testbild, anfragen auf eine .html datei mit einer test html Seite beantwortet.
Nun soll ich da eine künstliche Bremse einbauen, um hinterher eine parallele Bearbeitung der Anfragen demonstrieren zu können. Dafür sollen die Daten in Blöcken von jeweils 128 Byte übertragen werden.
Der entsprechende Code Abschnitt sieht wie folgt aus:if (strstr(l_chaBuffer, "html")!=0) { printf("anfrage nach *.hmtl"); *ablage = strcat(sendestr, "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\n\r\n"); datei = fopen("test/test.html", "r"); fwrite(sendestr, 1, strlen( "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: close\r\n\r\n"), datastream); int bytesRead = fread(bild, 1, 9000, datei); fwrite(bild, 1, bytesRead, datastream); } } fflush(datastream);
Analog sieht das auch für die .jpeg Anfrage aus
Jetzt endlich die eigentliche Frage, wie kann ich auf einfache weise, immer nur die ersten 128 Byte von meinem Stream übertragen?
Schon mal vorweg vielen Dank für eure Mühen.
Edit: Bevor ichs vergesse, der Server arbeitet Verbindungorientiert, also via TCP und ist für Linux Systeme implementiert.
-
^^immer 128 bytes senden und dann 'ne pause machen (ack delay abwarten).
vielleicht bringts auch was, mit 'setsockopt' und SO_SNDBUF den sendebuffer zu verringern, aber ich glaube eher nicht.