/ 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
Sockets-forbinder - hvornår ophører de?
Fra : Rene' Godskesen


Dato : 04-04-02 12:57

Hej NG..

Jeg sidder og roder lidt med en hjemmelavet 'protokol' hvor en applet kobler
op til en server, og afhængig af de data der sendes fra appletten til
serveren, skal serveren sende en tilbagemelding til appletten.

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 kan selvfølgelig, med intervaller, sende en kommando til appletten og
høre om den svarer tilbage, men der må være en smartere måde?

Kender I den?
(Jeg har ikke vedlagt kode, men gør det meget gerne, hvis nødvendigt!)

--
Mvh.

Rene' Godskesen




 
 
Flemming Jensen (04-04-2002)
Kommentar
Fra : Flemming Jensen


Dato : 04-04-02 14:18

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


Martin Schou (08-04-2002)
Kommentar
Fra : Martin Schou


Dato : 08-04-02 12:19

> Jeg kan selvfølgelig, med intervaller, sende en kommando til appletten og
> høre om den svarer tilbage, men der må være en smartere måde?
>
> Kender I den?

java.net.Socket:

boolean isClosed()
Returns the closed state of the socket.

boolean isConnected()
Returns the connection state of the socket.

Den ene af disse burde kunne bruges.

Kig i dokumentationen til jdk

//Martin Schou



Brian Matzon (08-04-2002)
Kommentar
Fra : Brian Matzon


Dato : 08-04-02 12:30

"Martin Schou" <Martin.Schou@Grue-Hornstrup.dk> wrote in message
news:k0fs8.12488$567.650863@news000.worldonline.dk...
> Kig i dokumentationen til jdk
Nja - så simpelt er det jo heller ikke... isClosed er jo 1.4 - så hvis man
sidder på en
anden platform (hvad de fleste gør tror jeg...), er det lidt mere tricky :/

/Brian Matzon



Jan Oksfeldt Jonasen (10-04-2002)
Kommentar
Fra : Jan Oksfeldt Jonasen


Dato : 10-04-02 18:04

Brian Matzon <brian@matzon.dk> wrote:

> Nja - så simpelt er det jo heller ikke... isClosed er jo 1.4 - så hvis man
> sidder på en
> anden platform (hvad de fleste gør tror jeg...), er det lidt mere tricky :/
>
Metoden findes helt tilbage i 1.1:
<http://java.sun.com/products/jdk/1.1/docs/api/java.sql.Connection.html#
isClosed()>

--
Mvh/re Jan Jonasen
jonasen (at) it (dot) dk

If I wanted culture, I'd eat yogurt.

Lars Mosegård (10-04-2002)
Kommentar
Fra : Lars Mosegård


Dato : 10-04-02 18:45


"Jan Oksfeldt Jonasen" <jonasenREMOVE@THISit.dk> skrev i en meddelelse
news:1fafrfi.169m16g10gln84N%jonasenREMOVE@THISit.dk...
> Brian Matzon <brian@matzon.dk> wrote:
>
> > Nja - så simpelt er det jo heller ikke... isClosed er jo 1.4 - så hvis man
> > sidder på en
> > anden platform (hvad de fleste gør tror jeg...), er det lidt mere tricky :/
> >
> Metoden findes helt tilbage i 1.1:
> <http://java.sun.com/products/jdk/1.1/docs/api/java.sql.Connection.html#
> isClosed()>
>
Nu er java.sql.Connection ikke det samme som java.net.Socket......

Lars



Jan Oksfeldt Jonasen (13-04-2002)
Kommentar
Fra : Jan Oksfeldt Jonasen


Dato : 13-04-02 18:54

Lars Mosegård <lamos@FJERNpost8.tele.dk> wrote:

> Nu er java.sql.Connection ikke det samme som java.net.Socket......
>
Jeg beklager, fremover vil jeg prøve "læs og tænk" princippet =)

--
Mvh/re Jan Jonasen
jonasen (at) it (dot) dk

If I wanted culture, I'd eat yogurt.

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

Månedens bedste
Årets bedste
Sidste års bedste