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

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Timeout på net-forbindelser
Fra : Rasmus Christiansen


Dato : 30-05-01 18:46

Hejsa.

Jeg har lavet et lille program der ser efter om diverse services (POP3,
SMTP, NNTP, DNS, m.m) er oppe at køre. Man hvis de slet ikke kører, så tager
det en evighed at vente på en timeout.
Er det ikke muligt at sætte denne timeout ned ??? Jeg har søgt, man kan ikke
finde nogen løsning på problemmet.

Venlig hilsen Rasmus Christiansen.



 
 
Lars Hansen (30-05-2001)
Kommentar
Fra : Lars Hansen


Dato : 30-05-01 23:02

På din Socket kan du kalde setSoTimeout( int millis ) før
du opretter din forbindelse

/Lars
"Rasmus Christiansen" <c971458@student.dtu.dk> wrote in message
news:9f3blo$r3h$1@eising.k-net.dk...
> Hejsa.
>
> Jeg har lavet et lille program der ser efter om diverse services (POP3,
> SMTP, NNTP, DNS, m.m) er oppe at køre. Man hvis de slet ikke kører, så
tager
> det en evighed at vente på en timeout.
> Er det ikke muligt at sætte denne timeout ned ??? Jeg har søgt, man kan
ikke
> finde nogen løsning på problemmet.
>
> Venlig hilsen Rasmus Christiansen.
>
>



Flemming K. Jensen (31-05-2001)
Kommentar
Fra : Flemming K. Jensen


Dato : 31-05-01 12:20

Jeg har set denne forklaring før, men aldrig helt forstået den - og
ikke lige haft lejlighed til at afprøve den, siden jeg først hørte om
den.

Så vidt jeg har kunnet læse mig til betyder SoTimeout blot at
read-metoden timeouter med en InterruptedIOException.
Hvordan kan man skelne mellem om dette skyldes at der ikke er nogen
data at læse, (hvilket ofte kan være tilfældet) og om TCP-forbindelsen
er gået "død"? (det sidste er det der interesserer mig)


/Flemming Jensen

On Thu, 31 May 2001 00:02:04 +0200, "Lars Hansen" <spam@el-lal.dk>
wrote:

>På din Socket kan du kalde setSoTimeout( int millis ) før
>du opretter din forbindelse
>
>/Lars
>"Rasmus Christiansen" <c971458@student.dtu.dk> wrote in message
>news:9f3blo$r3h$1@eising.k-net.dk...
>> Hejsa.
>>
>> Jeg har lavet et lille program der ser efter om diverse services (POP3,
>> SMTP, NNTP, DNS, m.m) er oppe at køre. Man hvis de slet ikke kører, så
>tager
>> det en evighed at vente på en timeout.
>> Er det ikke muligt at sætte denne timeout ned ??? Jeg har søgt, man kan
>ikke
>> finde nogen løsning på problemmet.
>>
>> Venlig hilsen Rasmus Christiansen.
>>
>>
>
>


Morten Jensen (31-05-2001)
Kommentar
Fra : Morten Jensen


Dato : 31-05-01 19:21

"Flemming K. Jensen" wrote:
>
> Jeg har set denne forklaring før, men aldrig helt forstået den - og
> ikke lige haft lejlighed til at afprøve den, siden jeg først hørte om
> den.
>
> Så vidt jeg har kunnet læse mig til betyder SoTimeout blot at
> read-metoden timeouter med en InterruptedIOException.
> Hvordan kan man skelne mellem om dette skyldes at der ikke er nogen
> data at læse, (hvilket ofte kan være tilfældet) og om TCP-forbindelsen
> er gået "død"? (det sidste er det der interesserer mig)

InterruptedIOException smides kun hvis read() har blokeret i
<SO_TIMEOUT> millisekunder. Hvis noget andet går galt smides en
IOException. Bemærk, at InterruptedIOException nedarver fra IOException,
så du skal catch'e InterruptedIOException først.

try
{
int x = inputstream.read();
if(x == -1)
{
// End of stream
}
}
catch(InterruptedIOException iioe)
{
// Timeout waiting for data
}
catch(IOException ioe)
{
// An error occured
}

--
CAPUT A/S Morten Jensen Phone +45 70 12 24 42
Nygade 6 Senior Developer Fax +45 70 11 24 42
DK-1164 Kbh K jensen@caput.com http://www.caput.com

Brian Matzon (31-05-2001)
Kommentar
Fra : Brian Matzon


Dato : 31-05-01 08:31

"Rasmus Christiansen" <c971458@student.dtu.dk> wrote in message
news:9f3blo$r3h$1@eising.k-net.dk...
> Hejsa.
>
> Jeg har lavet et lille program der ser efter om diverse services (POP3,
> SMTP, NNTP, DNS, m.m) er oppe at køre. Man hvis de slet ikke kører, så
tager
> det en evighed at vente på en timeout.
> Er det ikke muligt at sætte denne timeout ned ??? Jeg har søgt, man kan
ikke
> finde nogen løsning på problemmet.
Sæt SO_TIMEOUT til noget lavere.
I øvrigt anbefales det at du laver en wrapper klasse der spawner en tråd til
at sætter
socketen op, denne kan så time ud inden for et antal milli sekunder...

/Brian Matzon



Rasmus Christiansen (04-06-2001)
Kommentar
Fra : Rasmus Christiansen


Dato : 04-06-01 23:02

> I øvrigt anbefales det at du laver en wrapper klasse der spawner en tråd
til
> at sætter
> socketen op, denne kan så time ud inden for et antal milli sekunder...
Da jeg både skal kunne gøre det på DNS forespørgelse samt Proxy-4, bliver
jeg nød til at gøre det på den sidste måde som du foreslår.
Kan du fortælle æidt mere om hvordan jeg gør det ???
Et eksempel måske ???

Venlig hilsen Rasmus Christiansen



Brian Matzon (06-06-2001)
Kommentar
Fra : Brian Matzon


Dato : 06-06-01 18:08

"Rasmus Christiansen" <c971458@student.dtu.dk> wrote in message
news:9flh1r$gpp$1@eising.k-net.dk...
> > I øvrigt anbefales det at du laver en wrapper klasse der spawner en tråd
> til
> > at sætter
> > socketen op, denne kan så time ud inden for et antal milli sekunder...
> Da jeg både skal kunne gøre det på DNS forespørgelse samt Proxy-4, bliver
> jeg nød til at gøre det på den sidste måde som du foreslår.
> Kan du fortælle æidt mere om hvordan jeg gør det ???
> Et eksempel måske ???
Here ya go: http://www.javaworld.com/javaworld/jw-09-1999/jw-09-timeout.html

/Brian Matzon



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste