Binden eines Sockets
Damit ein Server Clientverbindungen akzeptiert, muss er an eine Netzwerkadresse innerhalb des Systems gebunden sein. Der folgende Code veranschaulicht, wie ein Socket, der bereits erstellt wurde, an eine IP-Adresse und einen Port gebunden wird. Clientanwendungen verwenden die IP-Adresse und den Port, um eine Verbindung mit dem Hostnetzwerk herzustellen.
So binden Sie einen Socket
Die Sockaddr-Struktur enthält Informationen zu Adressfamilie, IP-Adresse und Portnummer.
Rufen Sie die Bindungsfunktion auf, und übergeben Sie die erstellte Socket- und Sockaddr-Struktur , die von der getaddrinfo-Funktion zurückgegeben werden, als Parameter. Suchen Sie nach allgemeinen Fehlern.
// Setup the TCP listening socket
iResult = bind( ListenSocket, result->ai_addr, (int)result->ai_addrlen);
if (iResult == SOCKET_ERROR) {
printf("bind failed with error: %d\n", WSAGetLastError());
freeaddrinfo(result);
closesocket(ListenSocket);
WSACleanup();
return 1;
}
Sobald die Bindungsfunktion aufgerufen wurde, werden die von der getaddrinfo-Funktion zurückgegebenen Adressinformationen nicht mehr benötigt. Die Freeaddrinfo-Funktion wird aufgerufen, um den von der getaddrinfo-Funktion zugewiesenen Arbeitsspeicher für diese Adressinformationen freizugeben.
freeaddrinfo(result);
Nächster Schritt: Lauschen an einem Socket
Zugehörige Themen