[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