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