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

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Den rigtige måde at lukke en TCP forbindel~
Fra : Jesper Frank Nemholt


Dato : 13-03-01 20:37

Hej!

Jeg har et klient script :

http://www.dassic.dk/statdb_client.txt


Som connecter til et (halvfærdigt) server script :

http://www.dassic.dk/statdb_server.txt


Klienten disconnecter efter 10 sekunders inaktivitet m.h.t. det den får på
<STDIN>.

Dette fungerer fint nok det meste af tiden, men hvis jeg kører i et mijø
hvor netværket er ustabilt sker det ofte at forbindelsen bliver åbnet, men
at serveren aldrig modtager en close(), og resultatet er :

sara> /usr/sbin/netstat | awk '/Proto/ || /statdb/ {print $0}'
Proto Recv-Q Send-Q Local Address Foreign Address (state)

tcp 33580 0 sara.statdb carlota.tsm.inet.4406 ESTABLISHED
tcp 33580 0 sara.statdb vanesa10.tsm.ine.2933 ESTABLISHED
tcp 21309 0 sara.statdb vanesa10.tsm.ine.3446 CLOSE_WAIT
tcp 33580 0 sara.statdb vanesa20.tsm.ine.4981 ESTABLISHED
tcp 10942 0 sara.statdb zoe20.tsm.inet.3453 CLOSE_WAIT
tcp 33580 0 sara.statdb vanesa10.tsm.ine.2937 ESTABLISHED
tcp 33580 0 sara.statdb vanesa20.tsm.ine.3447 ESTABLISHED
tcp 29300 0 sara.statdb vanesa20.tsm.ine.1400 CLOSE_WAIT
tcp 15388 0 sara.statdb iratxe.tsm.inet.4017 CLOSE_WAIT
o.s.v.


Jeg kan naturligvis få operativsystemet til at rydde op i dette, men jeg vil
hellere have at mine 2 scripts selv gør rent efter sig.


Er der nogen gylden regel m.h.t. hvordan man gør dette, eller er det bare at
gøre som jeg gør i klient scriptet, at sætte en alarm timeout og så slå
forbindelsen ned fra server siden hvis den ikke er lukket efter 10 sekunder
af klienten ?


l8r/Jspr



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

Månedens bedste
Årets bedste
Sidste års bedste