Okay, wenn bei Dir eine Zeile einen Datensatz darstellt kann ich verstehen warum Du mit einem Array arbeitest.
.Andernfalls waere aber, meiner Meinung nach, ein String besser da zur ich es zur Auswertung besser finde die Server-Antwort in einem String zu haben und dann zerlege wie ich es fuer richtig halte.
Das fputs()/fwrite() ist noetig um ueberhaupt erstmal die Anfrage an den Server zu schicken. Der faengt ja nicht einfach an zu senden nur weil Du Dich verbindest.
Entsprechend musst Du eine Anfrage an den Server schicken, ihm eben mitteilen was Du denn ueberhaupt von ihm willst.
Ich denke einen marginalen Header sollte man schon mitschicken. Ich bin nicht sicher wie weit der gekuerzt werden kann, moeglicherweise wuerde GET / reichen, bin grad nicht sicher. Ist was her dass ich das RFC gelesen hab.
\r\n ist ein Zeilenumbruch, genauer gesagt ein Windows-Zeilenumbruch.
\r ist ein Carriage-Return, \n ist New-Line. Diese "heilige Zweifaltigkeit" stammt noch aus der Zeit der Schreibmaschinen wo man am Zeilenende eben in die naechste Zeile gesprungen ist und dann den "Klotz" (sorry, mir faellt der Begriff grad nicht ein, und ich will auch nicht einfach Carriage sagen
) wieder zum Beginn der Spalte schiebt.
Auch fuer Unix-Server wird, meines Wissens nach, in HTTP \r\n genutzt, obwohl ein Unix-Zeilenumbruch lediglich aus \n besteht.
Grund duerfte wohl sein dass das \r unter Unix-Systemen einfachen nicht beachtet wird, aber unter Windows eben noetig sein duerfte.
Wie gesagt, ist was her dass ich die entsprechenden RFCs gelesen hab, koennte mich also in Details irren.