Vielleicht habe ich mich etwas unklar ausgedrückt. Die Variante den Header mit drei client.println() Aufrufen zu senden funktioniert zwar wenn ich mit dem Browser abfrage, hingegen mit dem c-Programm als HTTP-Client funktioniert es nicht korrekt.
Es wird dann beim Empfang des Headers immer nur die erste Zeile empfangen, also "HTTP/1.0 200 OK". Die folgenden Zeilen kommen dann erst später an, aber meistens nicht alle.`
Mit der Variante den ganzen Header mit einem einzigen client.println() zu senden funktioniert jedoch alles.
Bei der vorgeschlagenen Variante von my_xy_projekt kommt beim Lesen des Headers auch nur die erste Zeile an.
Typischer Testlauf:
./httpclient
url: 192.168.4.1
path: /Data
portnr: 80
getrequest="GET /Data HTTP/1.1
HOST: 192.168.4.1
"
Socket created...
starte connect(sockfd ...)
Connection successful...
starte write(sockfd, getrequest ...)
buffer="HTTP/1.1 200 OK"
Fehler: buffer="
Connection: close
Content-Type: text/html; charset=UTF-8
Content-Language: de
Dabei ist der erste Testausdruck "buffer=..." das was beim Lesen des Headers gekommen ist.
Der Testausdruck "Fehler: buffer=" ist das was beim Lesen der Daten angekommen ist, und im Parser als falsch erkannt wurde.