[Java lista] net
Laja
laja at freemail.hu
2008. Sze. 8., H, 17:27:08 CEST
Hi!
Kérdésem röviden, hogyan tudom detektálni, hogy egy TCP kapcsolat megszakad?
Bővebben:
Van egy progim (kliens), ami kommunikál TCP-n egy másik progival.
Socket soc = new Socket(host, port);
soc.setSoTimeout(30000);
soc.setSoLinger(true, 30);
BufferedReader chis=new BufferedReader(
new InputStreamReader(soc.getInputStream())
);
PrintWriter chos=new PrintWriter(soc.getOutputStream());
chos.println("MUKOGY\n");
chos.flush();
//Megvárjuk a választ.
String valasz = chis.readLine();
chis.close();
chos.close();
soc.close();
A gond az, hogy ez csak akkor jó, ha a kapcsolatfelvételben vagy azelőtt
van hiba. Ha már felépült a kapcsolat (másik oldalon volt accept()),
akkor ha a másik oldalon egyszerűen kilövöm a szervert, akkor a kliens
végtelenségig vár a chis.readln() paranccsal, hogy majdcsak egyszer
válaszol a szerver. Hogyan tudok erre valami timeout-ot adni, vagy
figyelni hogy a kapcsolat él-e még?
Tudom, RTFM, de én csak a setSoTime és setSoLinger-t találtam, de azok
ezen nem segítettek.
Köszi előre is!
Laja
További információk a(z) Javalist levelezőlistáról