Verbinding maken met een socket
Een client moet verbinding maken met een server om te communiceren in een netwerk.
Verbinding maken met een socket
Roep de functie aan, waarbij de gemaakte socket en de sokaddr structuur als parameters worden doorgegeven. Controleer op algemene fouten.
// Connect to server.
iResult = connect( ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen);
if (iResult == SOCKET_ERROR) {
closesocket(ConnectSocket);
ConnectSocket = INVALID_SOCKET;
}
// Should really try the next address returned by getaddrinfo
// if the connect call failed
// But for this simple example we just free the resources
// returned by getaddrinfo and print an error message
freeaddrinfo(result);
if (ConnectSocket == INVALID_SOCKET) {
printf("Unable to connect to server!\n");
WSACleanup();
return 1;
}
De functie getaddrinfo wordt gebruikt om de waarden in de sokaddr structuur te bepalen. In dit voorbeeld wordt het eerste IP-adres dat door de getaddrinfo- functie wordt geretourneerd, gebruikt om de sockaddr- structuur op te geven die wordt doorgegeven aan de connect. Als de verbinding-aanroep naar het eerste IP-adres mislukt, probeer dan de volgende addrinfo-structuur in de gekoppelde lijst die wordt geretourneerd door de getaddrinfo-functie.
De informatie die is opgegeven in de sockaddr structuur omvat:
- het IP-adres van de server waarmee de client verbinding probeert te maken.
- het poortnummer op de server waarmee de client verbinding maakt. Deze poort is opgegeven als poort 27015 toen de client de getaddrinfo functie aangeroepen.
Volgende stap: verzenden en ontvangen van gegevens op de client
Verwante onderwerpen