Anzeige:
Ergebnis 1 bis 2 von 2

Thema: (UNIX, Sockets) gethostbyaddr() Problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.08.2003
    Beiträge
    79

    (UNIX, Sockets) gethostbyaddr() Problem

    Hallo!
    Ich versuche mit der gethostbyaddr() Funktion Infos über den Host auf dem das Prog. läuft zu bekommen. Leider liefert gethostbyaddr() NULL und perror gibt "No such file or directory" aus.
    Hier ist das Programm (Abschnitt):

    static struct hostent *host_info;
    int orig_sock, /* Original socket descriptor in server */
    new_sock, /* New socket descriptor from connect */
    clnt_len; /* Length of client address */
    static struct sockaddr_in clnt_adr, serv_adr;

    if ((orig_sock = socket (AF_INET, SOCK_STREAM, 0)) < 0)
    memset (&serv_adr, 0, sizeof (serv_adr)); /* Clear it out */
    serv_adr.sin_family = AF_INET; /* Set address type */
    serv_adr.sin_addr.s_addr = htonl (INADDR_ANY); /* Any interface */
    serv_adr.sin_port = htons (0); /* Tell system to use any port */

    if (bind (orig_sock, (struct sockaddr *) &serv_adr, sizeof (serv_adr)) < 0)
    if (listen (orig_sock, 5) < 0)

    host_info = gethostbyaddr ((char*)&serv_adr.sin_addr.s_addr,
    sizeof (serv_adr.sin_addr),
    AF_INET);

    Hat jemand eine Idee, was ich hier falsch mache?

    mfg TrollSlayer

  2. #2
    Registrierter Benutzer
    Registriert seit
    15.08.2003
    Beiträge
    79

    Smile Ich hab's

    Ich denke ich habe den Fehler gefunden.
    Die Anweisung:
    serv_adr.sin_addr.s_addr = htonl (INADDR_ANY);
    setzt die Adresse auf einen beliebigen Wert. Dadurch schlägt der Aufruf von gethostbyaddr() fehl. Da ich sowieso nur die Infos vom localhost brauche benutze ich gethostent().

Lesezeichen

Berechtigungen

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