/ / Klient tworzy połączenie z nieznanym adresem IP serwera - c, połączenie, klient

Klient tworzy połączenie z nieznanym adresem IP serwera - c, połączenie, klient

Używam języka C do utworzenia połączenia z klienta na serwer. Używam polecenia:

iResult = connect(ServerSocket,(LPSOCKADDR)&addr, nSize);

W większości przypadków, gdy adres IP serwera (w "addr")jest rozpoznawany lub w sieci lokalnej, natychmiast zwraca wynik (fail lub OK), ale jeśli jest to strona poza IP sieci lokalnej lub nieistniejący adres IP, limit czasu połączenia jest dość długi, nie może odpowiadać w czasie rzeczywistym przetwarzanie. Czy mógłbyś mi powiedzieć, jaki jest pomysł na ustawienie limitu czasu (kilka milisekund) dla tego polecenia? Dzięki za pomoc.

Odpowiedzi:

2 dla odpowiedzi № 1

Możesz znaleźć przykład w tym artykule:

Jak ustawić limit czasu połączenia z gniazdem

Zasadniczo musisz użyć nieblokującego gniazda I / O i użyć jakiejś formy multipleksowania wejść / wyjść (np. Wybrać lub odpytać).