Aktywne Wpisy

Czarny_Wilk +92
#kiszak
Obejrzałem na razie pół godziny streama, mam już dwie strony tekstu.
Kiszak jeszcze nie zaczął omawiać mojego tekstu.
Obejrzałem na razie pół godziny streama, mam już dwie strony tekstu.
Kiszak jeszcze nie zaczął omawiać mojego tekstu.

Huptys +10






Chodzi mi tutaj o podstawową funkcję connect(), czy można ją wykorzystać do tego aby połączyć się z adresem 8.8.8.8 potwierdzając tym samym że mamy dostępne połącznie interenetowe? Gdzieś przeczytałem że to wystarczy - taki prosty PING. Jednak kiedy oglądałem źródła komendy ping.c to tam nie korzystali z connect() tylko od razu po stwqorzeniu socketa dawali send() wysylajac pakiet icmp. Jak zrobić? Chodzi mi tu o szybkie sprawdzenie polaczenia z internetem. czy connect() powinien zadziałać i lepiej coś wysłać send() ?
CAP_NET_RAWna Linuxach. Na Windowsa jest specjalne API https://learn.microsoft.com/en-us/windows/win32/api/icmpapi/nf-icmpapi-icmpsendecho?redirectedfrom=MSDNWcześniej ci pisałem że takie sprawdzenie lepiej robić po HTTP
TCP_MAXRTwsetsockopt(my_socket, IPPROTO_TCP, TCP_MAXRT, (char*)&timeout, sizeof(timeout));i działało - np.Jedyny sposób na sprawdzenie czy faktycznie masz połączenie z internetem to wysłanie zapytania w ten internet i oczekiwanie że otrzymasz odpowiedź.