Cruz: Socket Programmierung unter Windows in C

Hallo,

diese Frage richtet sich an die hardcore C Programmierer unter euch. Ich programmiere zwar schon länger C unter Linux und es war öfter mal Netzwerkprogrammierung dabei, aber heute stand ich zum ersten mal vor der Aufgabe das unter Windows tun zu müssen und musste feststellen, dass ich mein Programm noch nicht einmal kompilieren kann. Ich habe ein wenig im Internet rumgestochert und habe die Stichwörter winsock, cygwin und mingw ausgegraben. Meine Frage an euch ist nun, wie sieht die optimale Umgebung unter Windows aus, in der ich mit einem C Programm Sockets öffnen kann? Welchen Compiler nehme ich am besten? Muss ich bei den winsock Versionen irgendwas beachten? Wie sieht es mit make aus? Ich möchte den Ansatz dahingehend optimieren, dass die Programme, die ich für Windows schreibe, möglichst auf Anhieb (#ifdef _WIN32) oder nur mit geringfügiger Modifikation auch unter Linux laufen.

Vielen Dank,
Cruz

  1. Moin Moin!

    Herzliches Beileid. ;-)

    Eine der ersten Schritte des Programms muß sein, WSAStartup() aufzurufen, danach ist es recht ähnlich zu BSD (Kunststück bei der Kopiervorlage, die Microsoft benutzt hat).

    Fang mal bei http://msdn2.microsoft.com/en-us/library/ms742213.aspx zu lesen.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
  2. Ich möchte den Ansatz dahingehend optimieren, dass die Programme, die ich für Windows schreibe, möglichst auf Anhieb (#ifdef _WIN32) oder nur mit geringfügiger Modifikation auch unter Linux laufen.

    Hier sind Beispiele dazu zu finden:
    http://www.galileocomputing.de/openbook/c_von_a_bis_z/

    Gruß

    Stareagle

  3. Um diese Frage für das Archiv selbst zu beantworten:

    Ich habe cygwin mit dem devel Paket installiert und kann damit unter Windows mit gcc c Code kompilieren. Sockets funktionieren wunderbar und so wie es scheint, brauche ich mich in der cygwin Umgebung Windows nicht anzupassen und kann ganz normal den Code nehmen, den ich auch für Linux schreiben würde. Ich hoffe das bleibt auch langfristig so.

    Gruß,
    Cruz