Test om der er internetforbindelse i et program
Jeg skal bruge en funktion i et program til at tjekke om computeren har forbindelse til internettet.Jeg har fundet en funktion i Windows API'en og den virker da også.
Jeg bruger Borland C++ Builder 6.
Jeg har sat følgende kode ind i en timer der tjekker en gang i sekundet om der er forbindelse.
DWORD flag ;
i++;
if ( InternetGetConnectedState ( &flag, NULL ) )
str = "Internet connection is present\n" ;
else
str = "No Internet connection\n" ;
if ( flag & INTERNET_CONNECTION_LAN )
str = "The system uses a local area network to connect to the Internet" ;
if ( flag & INTERNET_CONNECTION_MODEM )
str = "The system uses a modem to connect to the Internet" ;
if ( flag & INTERNET_CONNECTION_PROXY )
str = "The system uses a proxy server to connect to the Internet\n" ;
Når programmet kører finder den rigtigt nok ud af om der er forbindelse, men hvis man trækker netværksstikket ud, så er den omkring 7 sekunder om at opdage det i programmet, selv om den tjekker en gang i sekundet. Hvordan kan det være?
Er der andre måder at finde ud af om forbindelsen er røget når det sker i stedet for flere sekunder efter?
Noget underligt jeg har opdaget ved mit lille program er, at på en vens bærbare computer, er den omkring et minut om at opdage at forbindelsen er røget.
Jeg kunne godt tænke mig at teste programmet på nogle flere computere, og vil høre om nogen vil gøre mig den tjeneste at downloade mit program (eller source-koden, og selv compile det), og starte det op, og trække netværksstikket og se hvor mange sekunder den er om at opdage at forbindelsen er væk.
Hvis i vil gøre mig den tjeneste, må i godt skrive hvilken hardware der er i jeres computer, så jeg kan se om det har noget med CPU'en at gøre eller sådan noget.
Programmet kan downloades her: http://www.wogaming.com/stuff/testcon.exe
og source koden kan downloades her:
http://www.wogaming.com/stuff/source.rar
Mvh Effer