Sockets: Unterschied UNIX <-> LINUX



  • Hallo,

    ich muss ein kleines Socket-Programm schreiben, das sowohl unter UNIX als auch Linux laufen soll. Es soll nur das auf dem server ausgegeben werden, was auf dem client eingegeben wird

    Ist da irgendwas zu beachten oder kann ich das Prog. ohne Probleme auf Solaris kompilieren? (Hab kein Solaris zum testen )

    Danke,
    Bernd



  • solange du nur die "grundfunktionen" socket,recv,send,bind,listen,accept
    verwendest sollte das programm auf allen unix systemen und auf windows
    compilierbar sein und gleiches verhalten zeigen.
    zu beachten ist nur, dass man als socket descriptor unter unix int
    nimmt waehrend es unter windows ein makro/typedef SOCKET gibt.
    ausserdem geben die funktionen unter windows bei einem fehler nicht -1 sondern
    SOCKET_ERROR zurueck und errno wird nicht gesetzt (->WSAGetLastError()).



  • @undefined,
    der wichtigste Unterschied ist die Initialisierung.
    Bevor man unter Windows Sockets verwenden kann, muss die Funktion WSAStartup und am Ende WSACleanup aufgerufen werden. Ansonsten schließe ich mich entelechie an.



  • Von Windows war in der Frage überhaupt nicht die Rede...

    Ob man was konkret beachten muss, weiß ich nicht.
    Aber zur Kompatibilität steht jeweils zu den Funktionen in der Manpage oft etwas unter CONFORMING TO oder NOTES.



  • DrGreenthumb schrieb:

    Von Windows war in der Frage überhaupt nicht die Rede...

    Richtig erkannt DrGreenthumb, was ich bei Linux<->Windows beachten muss weiß ich mittlerweile, nur nicht, ob bei UNIX noch ein unterschied besteht



  • Ups...habe in der Überschrift Windows <--> Linux gelesen. Sorry 🙂



  • undefined schrieb:

    ich muss ein kleines Socket-Programm schreiben, das sowohl unter UNIX als auch Linux laufen soll. Es soll nur das auf dem server ausgegeben werden, was auf dem client eingegeben wird

    Ist da irgendwas zu beachten oder kann ich das Prog. ohne Probleme auf Solaris kompilieren? (Hab kein Solaris zum testen )

    Dafür gibt es ja die POSIX Standards, die das Systeminterface standardisieren. Alle neueren UNICES und UNIX Derivate (wie Linux) versuchen sich daran zu halten, deswegen solltest du nur selten Probleme erhalten.


Anmelden zum Antworten