Avatar billede frosig Nybegynder
29. september 2004 - 10:19 Der er 8 kommentarer og
1 løsning

Er socket forbundet?

Jeg har en løsning, hvor jeg har en ServerSocket (Java) og så har jeg x antal telnet klienter. Jeg kan sagtens få telnet klienterne til at forbinde til min socket og så kan min socket sagtens sende data til klienterne.

Problemet kommer, når jeg lukker for klienterne. Hvordan finder min server ud af, at forbindelsen er brudt? Jeg vil nemlig meget gerne lukke de sockets, der ikke bliver brugt...
Avatar billede Slettet bruger
29. september 2004 - 10:24 #1
spørg på metoden isConnected(), eller måske på isClosed() ?
Avatar billede Slettet bruger
29. september 2004 - 10:25 #2
undskyld, jeg tror nærmere du skal spørge på isBound()-metoden...
Avatar billede frosig Nybegynder
29. september 2004 - 11:06 #3
Det virker ikke, for begge metoder returnerer om der på et tidspunkt er blevet oprettet en forbindelse. De siger ikke noget om, hvorvidt forbindelsen stadigvæk er i live.
Avatar billede arne_v Ekspert
29. september 2004 - 11:51 #4
der er mig bekendt ikke nogen god løsning på problemet.

Kendte workaorunds:

1)  lad client sende en BYE/LOGOUT før de lukke rned

2)  lave en keep alive message hver X. sekund for at få en hurtig fejl
Avatar billede frosig Nybegynder
29. september 2004 - 12:55 #5
arne_v - Kan du uddybe workaround 2 eller endnu bedre, har du et eksempel, som jeg kan tage et kig på?
Avatar billede arne_v Ekspert
29. september 2004 - 13:05 #6
Det er ganske simpelt. F.eks. kan man sige at client skal sende en keep
alive hver 10. sekund.

Serveren checker så alle connections og hvis nu minus tid for sidste
message er større end f.eks. 15 sekunder så lukkes den.

minus
Avatar billede frosig Nybegynder
29. september 2004 - 13:16 #7
Argh... Problemet er, at klienten er telnet, så det er ikke en klient, som jeg har udviklet. Med mindre at telnet automatisk sender noget data, som jeg kan spørge på, så kan jeg desværre ikke bruge den løsning. Har du andre forslag?
Avatar billede arne_v Ekspert
29. september 2004 - 21:55 #8
Ikke umiddelbart. Telnet er som telnet nu er.
Avatar billede frosig Nybegynder
13. april 2005 - 13:44 #9
Ingen løsning
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester