/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Tjekke om der er forbindelse til nettet i ~
Fra : nospam@zpost4660.dk


Dato : 19-02-06 22:51

Jeg har søgt på Google både på nettet og i nyhedsgrupper,
og jeg kan se at spørgsmålet har været oppe at vende mange
gange, omkring hvordan man sikrer sig at der hul igennem
til nettet inden at man begynder at foretage sig yderligere.

Løsningen står endda beskrevet i Delphi's egen hjælp.

Det er noget i stil med:

If not terminated and clientsocket.connected then

Jeg så mange svar via Google men ikke nogen der omhandler
mit problem.

Problemet er at selvom jeg benytter ClientSocket, så vil
compileren ikke kendes ved ClientSocket.Connected og
slet ikke Terminated.

En af mine venner fandt frem til at man i stedet skulle
skrive ClientSocket.Socket.Connected og det virkede, men
jeg kan stadig ikke få det til at virke med Terminated,
og Connected forhindrer ikke i sig selv at mit program
hænger hvis der ikke er hul igennem til nettet.

Jeg har blot lavet et program som justerer pc-uret mod
et atomur. Jeg ved godt at der findes tonsvis af den
slags programmer i forvejen, jeg synes blot at det kunne
være sjovt at lave et selv.

Findes der andre metoder at forhindre at programmet hænger
hvis ikke at der er en brugbar linie ud til nettet?


--
Med venlig hilsen

Jørgen Lyng
(uden z)

 
 
Thomas Demant (25-02-2006)
Kommentar
Fra : Thomas Demant


Dato : 25-02-06 14:41

> <SNIP>
> Findes der andre metoder at forhindre at programmet hænger
> hvis ikke at der er en brugbar linie ud til nettet?

En mulighed var måske at køre det med Try og Except.
Men med hensyn til ClientSocket, så må jeg indrømme at jeg ikke har den
fjerneste ide om hvad det er for en komponent. Jeg har aldrig arbejdet med
D6. Men prøv at komme med noget kildekode. Hvilken fejl giver compileren,
for den ikke vil "kendes ved" f.eks. ClientSocket.Connected?

--
Thomas



nospam@zpost4660.dk (25-02-2006)
Kommentar
Fra : nospam@zpost4660.dk


Dato : 25-02-06 23:09

Thomas Demant skrev:

>> Findes der andre metoder at forhindre at programmet hænger
>> hvis ikke at der er en brugbar linie ud til nettet?
>
>En mulighed var måske at køre det med Try og Except.
>Men med hensyn til ClientSocket, så må jeg indrømme at jeg ikke har den
>fjerneste ide om hvad det er for en komponent. Jeg har aldrig arbejdet med
>D6. Men prøv at komme med noget kildekode. Hvilken fejl giver compileren,
>for den ikke vil "kendes ved" f.eks. ClientSocket.Connected?

Try og Except fanger desværre ikke problemet med at systemet hænger
hvis ikke at man er online.

ClientSocket.Connected er ikke meget værd når at man har en LAN
forbindelse (kabelmodem). Den siger nemlig at man er connected også
når man ikke
er online.


--
Med venlig hilsen

Jørgen Lyng
(uden z)

Uffe Kousgaard (26-02-2006)
Kommentar
Fra : Uffe Kousgaard


Dato : 26-02-06 11:21

<nospam@zpost4660.dk> wrote in message
news:pjphv1l4so5q3raq8vp309jq2v648e44f9@4ax.com...
>
> Findes der andre metoder at forhindre at programmet hænger
> hvis ikke at der er en brugbar linie ud til nettet?

Prøv at lave ping på en bestemt side. Jeg mener, at Indy har den slags
indbygget.

hilsen
Uffe



nospam@zpost4660.dk (26-02-2006)
Kommentar
Fra : nospam@zpost4660.dk


Dato : 26-02-06 12:44

Uffe Kousgaard skrev:

>Prøv at lave ping på en bestemt side. Jeg mener, at Indy har den slags
>indbygget.

Har lige prøvet at benytte ping via det roste ICS modul.
Det hjalp desværre heller ikke.

--
Med venlig hilsen

Jørgen Lyng
(uden z)

Uffe Kousgaard (26-02-2006)
Kommentar
Fra : Uffe Kousgaard


Dato : 26-02-06 12:59

<nospam@zpost4660.dk> wrote in message
news:h15302haf9oivbtidebomhsqr8h90gc3ko@4ax.com...
>
> Har lige prøvet at benytte ping via det roste ICS modul.
> Det hjalp desværre heller ikke.

hvordan virker det ikke?



nospam@zpost4660.dk (27-02-2006)
Kommentar
Fra : nospam@zpost4660.dk


Dato : 27-02-06 00:10

Uffe Kousgaard skrev:

>> Har lige prøvet at benytte ping via det roste ICS modul.
>> Det hjalp desværre heller ikke.
>
>hvordan virker det ikke?

Der var vedlagt et programeksempel som gør brug af ping
funktionen. Man indtaster en IP-adresse som man vil pinge,
og så skriver den resolving host uanset om der er forbindelse
eller ej, og der sker ikke yderligere. Ikke nogen tilbagemelding,
heller ikke når at der er "hul igennem".


--
Med venlig hilsen

Jørgen Lyng
(uden z)

Thomas Demant (26-02-2006)
Kommentar
Fra : Thomas Demant


Dato : 26-02-06 21:39

>>Prøv at lave ping på en bestemt side. Jeg mener, at Indy har den slags
>>indbygget.
>
> Har lige prøvet at benytte ping via det roste ICS modul.
> Det hjalp desværre heller ikke.

Kender ikke pågældende modul.
Men du kunne f.eks. tilslutte til Google.com på port 80 og straks du har
forbindelse afbryde. Dit program "hænger", hvis der ikke er forbindelse, men
kun i den periode du har sat timeout til (standard er 30 sekunder). Hvad
Google siger til det ved jeg ikke, men det virker
Mener at Indy komponenten hedder TCPsocket, men er dog ikke helt sikker.
Hvis jeg husker det, kan jeg smide en stump kode i morgen eftermiddag.

--
Thomas



nospam@zpost4660.dk (27-02-2006)
Kommentar
Fra : nospam@zpost4660.dk


Dato : 27-02-06 00:10

Thomas Demant skrev:

>Hvis jeg husker det, kan jeg smide en stump kode i morgen eftermiddag.

Det lyder interessant.

--
Med venlig hilsen

Jørgen Lyng
(uden z)

Thomas Demant (27-02-2006)
Kommentar
Fra : Thomas Demant


Dato : 27-02-06 22:13

>>Hvis jeg husker det, kan jeg smide en stump kode i morgen eftermiddag.
>
> Det lyder interessant.
Det blev først hen under aften, men her er den:


try
TCP1.Host:='google.dk'
TCP1.Port:=80
TCP1.Connect(30000); //tallet i parantes er timeout i millisekunder
TCP1.Disconnect;
except
on E: Exception do
begin
ShowMessage('Ingen forbindelse...'+FormatDateTime('DD-MM-YYYY
HH:NN:SS', now)+#13+E.Message);
end;
end;

TCP1 er IdTCPClient-komponenten. Er testet med Indy 7. Der er måske enkelte
ting der skal rettes til Indy 6.

Med forbehold for syntakstfejl m.m. ;)

--
Thomas




nospam@zpost4660.dk (28-02-2006)
Kommentar
Fra : nospam@zpost4660.dk


Dato : 28-02-06 13:09

Hej Thomas

Thomas Demant skrev:

> TCP1.Port:=80
> TCP1.Connect(30000); //tallet i parantes er timeout i millisekunder

Tak for hjælpen


--
Med venlig hilsen

Jørgen Lyng
(uden z)

Thomas Demant (27-02-2006)
Kommentar
Fra : Thomas Demant


Dato : 27-02-06 22:14

>>Hvis jeg husker det, kan jeg smide en stump kode i morgen eftermiddag.
>
> Det lyder interessant.
Det blev først hen under aften, men her er den:


try
TCP1.Host:='google.dk'
TCP1.Port:=80
TCP1.Connect(30000); //tallet i parantes er timeout i millisekunder
TCP1.Disconnect;
except
on E: Exception do
begin
ShowMessage('Ingen forbindelse...'+FormatDateTime('DD-MM-YYYY
HH:NN:SS', now)+#13+E.Message);
end;
end;

TCP1 er IdTCPClient-komponenten. Er testet med Indy 7. Der er måske enkelte
ting der skal rettes til Indy 6.

Med forbehold for syntakstfejl m.m. ;)

--
Thomas





Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste