[C/C++] Sockets mit Windows/Linux

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von °EraZoR°, 31. Dezember 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 31. Dezember 2010
    Sockets mit Windows/Linux

    Hey,

    ich wollte mich mal ein wenig mit der Programmierung mit Sockets beschäftigen..
    Ich stelle mir bloß die Frage, wie ich meinen Code am besten Platformunabhängig mache...

    Denn die Funktionen sowie die Libaries sind ja unter Linux und Windows vollkommen unterschiedlich oder habe ich das bisher falsch gelesen?
    Das beste ist also erstmal eine kleine Klasse zu schreiben, um die Platformunabhängigkeit zu erhalten und dann immer jeweils eine Fkt für Linux und für Windows zu schreiben oder?

    Oder hat jmd eine gute Klasse parat, damit ich mir das selbstschreiben ersparen kann?
    Und nen paar Links zu guten Tutorials egal ob Windows oder Linux oder beides wären auch noch cool!

    MfG und schonmal guten Rutsch
     
  2. 31. Dezember 2010
    AW: Sockets mit Windows/Linux

    Eine Klasse kannst du dir schon schreiben, aber in der Praxis ist das eigentlich unüblich. Hier wird einfach mit sowas gearbeitet:

    Code:
    #ifdef WIN32
     #include <windows.h>
     #include <winsock.h>
    #else
     #include <unistd.h>
     #include <sys/socket.h>
     #include <sys/types.h>
     #include <arpa/inet.h>
     #include <sys/ioctl.h>
    #endif
    Im Code selber gibt es nur kleine Unterschiede zwischen Unix/Win, die du auch mit ifdef behandeln kannst z.B.
    Code:
    #ifdef WIN32
     WSADATA wsadata;
     WSAStartup(MAKEWORD(1,0), &wsadata);
    #endif
    Am besten du programmierst alles für Windows, weil auch die Dokummentation viel besser ist und im Idealfall musst du dann ein paar ifdefs einbauen und die Sache läuft auch unter Unix, vorausgesetzt du hälst dich auch an den C/C++ Standard.
     
  3. 31. Dezember 2010
    AW: Sockets mit Windows/Linux

    Warum ist die Dokumentation unter Windows besser als unter Linux? Ein "man socket" erzählt mir alles, was ich wissen will..
     
  4. 31. Dezember 2010
    AW: Sockets mit Windows/Linux

    Okay danke..
    Wusste bloß nicht, ob die Funktionen grundlegend unterschiedlich sind, weil dann wäre es ja schwachsinn für jeden Send/Recv ein ifdef zu machen..
     
  5. 31. Dezember 2010
    AW: Sockets mit Windows/Linux

    @pyro

    Weil MSDN einfach unschlagbar ist, da kommen diese hässlichen MAN Seiten einfach nicht dagegen an. z.B. connect function (Windows) sogar mit Programmierbeispiel

    @°EraZoR°
    Ne die Funktionen sind gleich, gibt nur sehr wenige Unterschiede. Ein großer Unterschied ist WSAStartup für das ich dir schon die Lösung gepostet hab^^
     
  6. 31. Dezember 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Sockets mit Windows/Linux

    Die Unterschiede sind minimal. Es gibt bei Windows Befehle, die es unter Linux nicht gibt und andersherum auch. Du kannst natürlich auch von Windows direkt vorgefertigte Funktionen benutzen, um Inhalte von Webseiten oder vom FTP zu downloaden, etc.

    Hier mal 'ne kleine Klasse, falls Du dir mal die Funktionen angucken willst. Das wirklich wichtige sollte für dich innerhalb der Methoden stehen.

    No File | www.xup.in

    Einen guten Rutsch ins neue Jahr.
     
  7. 31. Dezember 2010
    AW: Sockets mit Windows/Linux

    Okay danke an euch
    Meine Fragen sind beantwortet..
    Wenn Pyro noch seine Meinung über man abgeben will und warum msdn ist, kann er ja wieder öffnen

    Guten Rutsch!
     
  8. 31. Dezember 2010
    AW: Sockets mit Windows/Linux

    Jo, meinen Senf mag ich schon noch dazugeben

    Es kommt natürlich immer auf die Plattform an, auf der man programmiert. Wenn ich unter Windows arbeite, dann zieh ich natürlich die MSDN zu Rate, wenn ich unter Linux arbeite, dann verwende ich natürlich die Manpages.

    Die Manpages gibts übrigens auch Online, wo sie auch besser ausschauen als in der Konsole Dort sind sie auch untereinander verlinkt, sodass man leicht navigieren kann. Programmbeispiele gibts auch ab und zu, allerdings nicht so oft wie bei der MSDN, das kann sein. Was ich aber als Vorteil betrachten würde ist, dass man bei den (lokalen) Manpages Zugriff auf Bibliotheken von Drittanbietern hat. Ich kann z.B. einfach ein "man SSL_read" eingeben und hab die Hilfe von OpenSSL.

    Falls N0S noch was schreiben will, dann kann er mich ja anschreiben und ich mach den Thread wieder auf.
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.