Nawiązywanie połączenia z gniazdem
Aby klient komunikował się w sieci, musi nawiązać połączenie z serwerem.
Aby nawiązać połączenie z gniazdem
Wywołaj funkcję connect, przekazując utworzone gniazdo i strukturę typu sockaddr jako parametry. Sprawdź, czy występują błędy ogólne.
// 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;
}
Funkcja getaddrinfo służy do określania wartości w strukturze sockaddr. W tym przykładzie pierwszy adres IP zwrócony przez funkcję getaddrinfo jest używany do określenia struktury sockaddr, która jest przekazywana do connect. Jeśli wywołanie connect nie powiedzie się z pierwszym adresem IP, spróbuj wykonać następną addrinfo struktury na liście połączonej zwróconej z funkcji getaddrinfo.
Informacje zawarte w strukturze sockaddr obejmują:
- adres IP serwera, z którego klient spróbuje nawiązać połączenie.
- numer portu na serwerze, z którego klient będzie się łączyć. Ten port został określony jako port 27015, gdy klient wywołał funkcję getaddrinfo.
Następny krok: wysyłanie i odbieranie danych na kliencie
Tematy pokrewne
-
Tworzenie gniazda dla klienta