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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für