Ip-Control für socketbasiertes Programm einsetzen



  • Moin,

    ich habe einen Dialog, in dem ein IP-Control eingebaut ist.
    Auf Buttondruck hole ich mit mit

    DWORD IPAdresse;
    SendMessage(GetDlgItem(hwndDlg,ID_IP),IPM_GETADDRESS,0,(LPARAM)(LPDWORD)&IPAdresse);
    

    den Inhalt des Controls.
    Meine Frage ist, wie ich nun IPAdresse in ein Format bekomme, um
    es direkt in sockaddr_in.sin_addr kopieren zu können
    und dann mittels Sockets eine Verbindung zu dem Rechner mit dieser IP
    aufbauen kann.
    Danke für Hilfe!



  • [SOCKADDR_IN].sockaddr_in.sin_addr = inet_addr((char*)&IPAdresse);

    lg Max



  • Danke, aber bei mir funktioniert das so nicht !?

    SOCKADDR_IN server;
    DWORD IPAdresse; // Wertzuweisung siehe oben.
    server.sin_addr = inet_addr((char*)&IPAdresse);
    

    Deiner Meinung nach müsste das ja eigentlich so aussehen:
    server.sockaddr_in.sin_addr = inet_addr((char*)&IPAdresse);

    Geht bei mir beides nicht. Deine Version ist nicht möglich,
    weil die Struktur anders ist.
    Und meine Abänderung davon verursacht den Fehler, dass angeblich
    'unsigned long' nicht in 'IN_ADDR' konvertiert werden kann.
    Schade.

    [EDIT]
    Habe es jetzt anders gelöst, indem ich das IP-Control durch ein
    Edit-Control ersetzt habe.
    Den Inhalt bekomme ich mittels GetWindowTextA().
    Der Vorteil ist, dass man so auch Rechnernamen einsetzen kann (z.B. localhost)
    und nicht nur IP-Adressen. 😃
    [/EDIT]


Anmelden zum Antworten