Avatar billede arnejan Nybegynder
20. november 2003 - 10:39 Der er 12 kommentarer og
1 løsning

Socket Spm

Hvis man forbinder et client program til et server program med Socket´s.

Og systemer virker på en måde således at serveren engang imellem uopfordret sender noget til klienten. Hvad så hvis forbindelsen lige pludselig ryger, f.eks hvis  strømmen til serveren ryger. Eller hvis en router på vejen falder ud.

Så får klienten jo ikke besked, den står vel bare og regner med at serveren ikke har noget at sige, selvom forbindelsen i virkeliheden er røget.

???

Spm 2. Hvor tit vil en fast tcp forbindelse på internettet gå i stykker, hvis man antager at serveren virker perfekt ??
Avatar billede sbk200 Nybegynder
20. november 2003 - 10:50 #1
spm1: Når klienten står og lytter efter data på en socket forbindelse gøres dette ofte via en inputstream på socket forbindelsen. Hvis Serveren går ned får du en exception på denne inputstream hvilken du kan reagere på !

Det er i alt fald én måde at gøre det på !
Avatar billede arne_v Ekspert
20. november 2003 - 10:53 #2
re 1)

Hvis du har brug for at detecte link failure, så put
en alive message i den applikations protokol.

re 2)

LAN : meget sjældent

WAN : vil ske lidt hyppigere men stadig sjældent
Avatar billede arnejan Nybegynder
20. november 2003 - 11:02 #3
Hvor sjælden1 ??? En forbindelse mellem USA og INDIEN vil den ryge ned 1 gang om dagen eller en gang om året.

Mvh
Avatar billede arne_v Ekspert
20. november 2003 - 11:07 #4
1 gang om dage => klag til ISP
1 gang om året => vær lykkelig

Det afhængere meget af fra hvor til hvor (og jeg kender ikke
indien), men 1 gang per 2-6 uger eller noget i den stil vil
være min forventning.
Avatar billede arnejan Nybegynder
20. november 2003 - 11:14 #5
Tak, ellers kan man jo logge det i vha sin alive message ting.

Mvh
Avatar billede arne_v Ekspert
20. november 2003 - 11:16 #6
Jep.
Avatar billede dsj Nybegynder
21. november 2003 - 00:09 #7
Hvis du altid står og læser fra din klient-socket (InputStream'ens read-metode), vil du oftest (99% af tilfældene) kunne opdage at forbindelsen er blevet afbrudt. F.eks. hvis du modtager bytes med værdien -1, betyder det at forbindelsen er afbrudt. I de fleste tilfælde vil InputStream'en dog smide en IOException ved afbrydelse af forbindelsen.

I den sidste 1 % tilfælde, er du nødt til at indføre en ping-mekanisme mod serveren, og hvis ikke du ikke modtager et svar indenfor f.eks. 30 sekunder, må du betragte serveren som utilgængelig eller forbindelsen død.
Avatar billede arnejan Nybegynder
21. november 2003 - 08:48 #8
Tak tak, men er det godt nok hvis clienten bare sender noget til serveren f.eks hver 20 sekund, og konstatere at det gik godt.

Er det også nødvendigt at serveren sender noget til Clienten hvert 20 sekund, eller at serveren svarer på klienten ping forespørsel. ?
Avatar billede arne_v Ekspert
21. november 2003 - 08:56 #9
I praksis bør det være nok at sende en vej. Modtager kan checke om der kommer
noget. Sender får en fejl hvis der er noget galt.
Avatar billede arne_v Ekspert
21. november 2003 - 09:43 #10
??
Avatar billede arnejan Nybegynder
21. november 2003 - 10:53 #11
??, er det pointene. Jeg troed du var ligeglad, i og med du ikke kom med noget svar.
Avatar billede arne_v Ekspert
21. november 2003 - 11:09 #12
Ikke sådan.

Nogen tilfælde (hvor det ikke er helt klart om mit indlæg kan løse
problemet) ligger jeg kun en kommentar, men forventer at spørger
beder om et svar, hvis det kan bruges til noget.

Men skidt pyt. lad os ikke bruge mere tid på det.
Avatar billede dsj Nybegynder
21. november 2003 - 11:23 #13
arne jeg synes det vil være helt fair hvis du får halvdelen - jeg opretter et spørgsmål, som du kan svare på.
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