Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Struct unklarheit bei Binding

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.08.1999
    Ort
    89555, Steinheim,BW
    Beiträge
    14

    Post Struct unklarheit bei Binding

    Hi,

    Ich hab mit Netzwerk und Socketprogrammierung angefangen und bin da über was gestolpert, das mir noch unklar ist:

    bind(sock, (struct sockaddr *) &svr, sizeof(svr))

    Und zwar diese Paramterübergabe der Structur mit dem Sternchenoperator und der Adresse von svr. Wenn das ein pointer ist, auf was zeigt der dann? und was soll die Adresse von svr da noch-es ist ja keine Zuweisung, für mich völlig zusammenhanglos.

    Kann mir das einer erklären?

    danke,

    CU
    Baitronic

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259

    Post

    Moin Baitronic,

    Es gibt mehrere Arten von Sockets, unter anderem Unix Domain- und TCP/IP-Sockets. Die Grundform davon ist die Struktur "sockaddr" in "sys/socket.h". Je nachdem, was für einen Socket Du erzeugen willst, musst Du aber die spezielle Struktur für diesen Socket verwenden, bei Unix Domain Sockets wäre das "struct sockaddr_un", bei TCP/IP demenstrpechend "struct sockaddr_in".
    Da der Kernel aber eine Struktur vom Typ "struct sockaddr" erwartet, musst Du die vorher erzeugte Struktur "struct sockaddr_un/_in" in den Typ "struct sockaddr" umwandeln oder konvertieren. Genau diesen Zweck erfüllt "(struct sockaddr*)".
    Da bind() einen Zeiger auf die Struktur will, übergibst Du ihm die Addresse mit dem Adressoperator &.
    Der Pointer zeigt nach wie vor auf eine Struktur vom Typ "sockaddr_un" oder "sockaddr_in", je nachdem was Du zuvor definiert hast.

    Ich hoffe, es einigermaßen verständlich rübergebracht zu haben

    Gruß micha
    IRC: irc.euirc.net #tux

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.08.1999
    Ort
    89555, Steinheim,BW
    Beiträge
    14

    Post

    Hi,

    das heißt ganz simpel das war ein cast??
    Da hätt ich auch draufkommen können

    Danke

    CU
    Baitronic
    --
    baitronic@gmx.net
    http://www.linuxhilfen.org

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259

    Post

    jepp, das richtige Wort wäre Type-Cast statt konvertieren gewesen
    IRC: irc.euirc.net #tux

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •