getsockname - IP herausfinden



  • Hallo,
    wenn ich das Handle zu einem Socket habe, so kann ich mit getpeername() herausfinden, wohin der verbunden (IP) ist und auf welchem Port.
    Für die Gegenseite (also zu mur selbst) gibts getsockname(). Aber ich komme nur an den Port, wobei es möglich sein muss, an die IP zu kommen, da CAsyncSocket::GetSockName() mir diese mir liefert liefert.
    Ich machte das so, wobei SOCKET sock den Socket darstellt:

    struct sockaddr_in sa;
    int iLen = sizeof(sa);
    getsockname(sock, (SOCKADDR*)&sa, &iLen);
    // Port:
    ntohs(sa.sin_port);
    // IP:
    inet_ntoa(sa.sin_addr);
    

    Wie gesagt, ich komme nicht an die IP, weil sa.sin_addr.S_un.S_addr 0 ist, somit liefert inet_ntoa 0.0.0.0 zurück.

    Was mache ich falsch?

    Danke für Antworten



  • Hat sich erledigt
    (man darf das erst aufrufen, nachdem man FD_CONNECT erhielt).


Anmelden zum Antworten