Strona 1 z 1

Połączenie sieciowe

Nowy postNapisane: czwartek, 18 września 2014, 08:43
przez Norbit
Ja można przechwycić z systemu komunikat o tym, że połączenie sieciowe zostało zerwane lub utworzone? Teraz sprawdzam, czy mam połączenie takim kodem:

KOD cpp:     UKRYJ  
#include <wininet.h>
#pragma link "wininet.lib"

void __fastcall TForm1::Button1Click(TObject *Sender)
{

if( !InternetCheckConnection(L"http://www.google.com",FLAG_ICC_FORCE_CONNECTION,0) )
{
                ShowMessage("Rozłączony");
}
else ShowMessage("Połączony");

}


Ten kod jest jednak strasznie nieefektywny. Gdy połączenie jest ustanowione, to od razu zwraca mi informację o połączeniu, jednak przy braku połączenie informacja zostaje udzielona dopiero po około 1 minucie. Czy można jakoś usprawnić ten kod, lub zastosować inny?

Re: Połączenie sieciowe

Nowy postNapisane: czwartek, 18 września 2014, 09:20
przez polymorphism
A po co sprawdzasz czy masz połączenie? Przecież połączenie w HTTP jest na ogół podtrzymywane na czas ściągnięcia (strumienia) odpowiedzi.

Re: Połączenie sieciowe

Nowy postNapisane: czwartek, 18 września 2014, 11:27
przez Norbit
Chcę po prostu by program sprawdzał, czy połączenie z internetem jest aktywne. Nie chodzi mi wcale o HTTP.

Re: Połączenie sieciowe

Nowy postNapisane: czwartek, 18 września 2014, 12:07
przez polymorphism
Z kodu wyglądało jakby chodziło Ci o HTTP. A może funkcja InternetGetConnectedState? Jeśli nie, to może pingowanie na konkretny adres IP -> link.