Socket-Verbindungsaufruf



  • Ich möchte einen Server erstellen, der Verbindungsanforderungen von Client empfängt. Ich weiß leider beim Verbindungsaufruf nicht weiter. Wer kann mir helfen?

    #include <winsock.h>
    
    void main() {
    	int Err;
    	SOCKET NewSocket;
    	WORD Port;
    	sockaddr_in NewAddr;
    
    	NewAddr.sin_family = AF_INET;
    	NewAddr.sin_addr = INADDR_ANY;  //INADDR_ANY = 00000000;
     	NewAddr.sin_port = Port;
    
    	Err = bind( NewSocket, NewAddr, sizeof(NewAddr));
    }
    

    sockaddr_in ist deklariert in winsock.h als:

    struct sockaddr_in {
    	unsigned short sin_family;
    	unsigned short sin_port;
    	struct  in_addr sin_addr;
    	char sin_zero[8];
    };
    


  • Ich hab das File jetzt noch etwas verändert:

    #include <winsock.h>
    
    void main() {
    	int Err;
    	SOCKET NewSocket;
    	WORD Port;
    	struct sockaddr_in NewAddr;
    
    	NewAddr.sin_family = AF_INET;
    	NewAddr.sin_addr.s_addr = INADDR_ANY;  //INADDR_ANY = 00000000;
     	NewAddr.sin_port = Port;
    
    	Err = bind(NewSocket, &NewAddr, sizeof(NewAddr));
    }
    

    Aber es kommt immer noch eine Fehlermeldung: 😕
    *
    error C2664: 'bind': Konvertierung des Parameters 2 von 'sockaddr_in *' in 'const sockaddr *' nicht möglich.
    Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
    *
    Wer kann helfen?



  • wie dein compiler schon sagt, die umwandlung erfordert einen reinterpret_cast:

    reinterpret_cast<sockaddr*>(&NewAddr)



  • Hallo unregistered!

    Funktioniert prima.
    Vielen Dank für die schnelle Hilfe.

    Falk2003


Anmelden zum Antworten