On Thu, 4 Apr 2002 13:57:18 +0200, "Rene' Godskesen"
<godskesen@has.dk> wrote:
>Men mit spørgsmål går på :
>Jeg kan oprette forbindelsen og kommunikere begge veje, men hvordan ved jeg
>at/om appletten stadig kører eller om brugeren har lukket den...
Jeg har rodet en del med netværkprogrammering i Java, og har altid
haft det problem at jeg ikke har kunnet opdage at om forbindelsen
blev lukket eller gik ned, uden at det var en del af protokollen (at
den blev lukket).
Jeg fik på et tidspunkt det tip at bruge read-metoden. Den kaster en
exception hvis man forsøger at læse fra en forbindelse der er lukket
eller gået ned. Det irriterende ved read-metoden er i denne sammenhæng
at den blokkerer. Man er derfor nød til at sætte en timeout så man
ikke kommer til at hænge i read-kaldet hvis forbindelsen stadig er
okay. Når timeouten udløses kastes der en SocketTimeoutException.
Du sætter timeouten med java.net.Socket.setSoTimeout( millisekunder ).
En SocketTimeoutException er forøvrigt en IOException, så du skal
placere dine catch'es i den rigtige rækkefølge. I tidligere versioner
end 1.4 kastes der ikke en SocketTimeoutException, men en
InterruptedIOException.
Jeg har ikke siden haft brug for det, så jeg har aldrig fået det
afprøvet, men det kan du jo gøre
/Flemming Jensen