Połączenie sieciowe

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

Połączenie sieciowe

Nowy postprzez Norbit » czwartek, 18 września 2014, 08:43

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?
Avatar użytkownika
Norbit
Bladawiec
Bladawiec
 
Posty: 33
Dołączył(a): wtorek, 15 lipca 2008, 22:43
Podziękował : 1
Otrzymał podziękowań: 1
    Windows 7Firefox

Re: Połączenie sieciowe

Nowy postprzez polymorphism » czwartek, 18 września 2014, 09:20

A po co sprawdzasz czy masz połączenie? Przecież połączenie w HTTP jest na ogół podtrzymywane na czas ściągnięcia (strumienia) odpowiedzi.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Połączenie sieciowe

Nowy postprzez Norbit » czwartek, 18 września 2014, 11:27

Chcę po prostu by program sprawdzał, czy połączenie z internetem jest aktywne. Nie chodzi mi wcale o HTTP.
Avatar użytkownika
Norbit
Bladawiec
Bladawiec
 
Posty: 33
Dołączył(a): wtorek, 15 lipca 2008, 22:43
Podziękował : 1
Otrzymał podziękowań: 1
    Windows 7Firefox

Re: Połączenie sieciowe

Nowy postprzez polymorphism » czwartek, 18 września 2014, 12:07

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.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości