server socket, ip adresse?



  • hallo,

    wenn ich einen server socket erstelle wie komm ich dann an die ip adresse des servers? es gibt da wohl string ip = system("ipconfig"); ...aber das ist nicht das so das was ich will....
    ich will die ip des server vor dem connecten eines clients in einem string speichern...

    cu



  • den ersten satz versteh ich nicht....
    aber wenn du die ip vom server in nem char-array haben willst dann mach:

    ...
    char ip[sizeof(argv[1])];
    strcpy(ip,argv[1]); //jetzt steht z. B. 192.168.0.100 in ip
    ...
    server.sin_addr.s_addr=inet_addr(ip); //ip noch ins netzwerkformat wandeln
    ....
    


  • hi, ich erstell ein server socket so, sorry aber ist bissi c++ dabei;-)

    WSADATA wsaData;
    ::WSAStartup(MAKEWORD(2, 0), &wsaData));
    
    socket_ = ::socket(AF_INET, SOCK_STREAM, 0);
    
    sockaddr_in socketAddress = {0};
    socketAddress.sin_family = AF_INET;
    socketAddress.sin_addr.s_addr = ADDR_ANY;
    socketAddress.sin_port = htons(port);
    
    int bindResult = ::bind(socket_,
    		      reinterpret_cast<sockaddr*>(&socketAddress),
    		      sizeof(socketAddress));
    

    ich will nicht bei programmstart die ip des server übergeben, hat ja nicht viel sinn...soll ja automatisch machen...
    wenn der server socket initialisiert ist, will ich ausgeben:
    cout << "Serversocket wurde erstellt an Port" << port << "hat die ip-adresse: " << ip << endl;

    es gibt ja auch ADDR_ANY ... kann man das irgendwie in eine ip auflösen?

    cu


Anmelden zum Antworten