Jak zavrit socket

Radek Hubner logik na nexus.pslib.cz
Sobota Říjen 2 00:22:29 CEST 2004


jj Dekuji za radu. bylo to skutecne radkou pac server mne zpracuje az 
kdyz obdrzi \r\n. flush(); pouzivam, ale kdyz sem zacinal po pul roce 
zase dealat se socketama tak sem na nej nejak zapomnel a hodinu sem 
premejslel proc to nejede :-). To ale nebyl tento pripad.

Jozef Babjak napsal(a):
> On Thu, Sep 30, 2004 at 03:40:37PM +0200, Radek Hubner wrote:
> 
>>Dobry den mam aplikaci v ktere komunikuji prez socket se vzdalenym 
>>serverem. De mi o to jak spravne zavrit soket a tez i tridy Reader a 
>>Writer. Ponevadz spojeni ukonci vzdy server po zaslani prikazu "exit". 
>>tudiz je pak okamzite vyvolana vyjimka: "java.net.SocketException: 
>>Socket closed". Napadlo mne ji pouze odchytit a dale se s ni 
>>nevyporadavat. Proto bych rad znal vas nazor.
> 
> 
>   ^-- Ja osobne problem riesim na strane klienta i serveru takto:
> 
> 	
> 	if(!connection.isClosed()) {
> 		connection.close();
> 	}
>   
>   Nie je to celkom koser, lebo to nemusi prebehnut atomicky, ale zabranuje 
> to vyhodeniu prave spominanej vynimky. Ja to chapem tak, ze tcp spojenie 
> staci uzavriet jednou stranou, co sa mi aj zda logicke, takze ak server 
> posle "exit" a zavola close(), tak klient po prijati "exit" uz len 
> skontroluje, ci server spojenie uzavrel, a ak nie, tak ho uzavrie on, co 
> robi vyssie uvedeny kod.
> 
>   Niekde ste pisali, ze ste zabudli poslat znak noveho riadku. Hadam 
> zavolat flush(), nie? Vyprazdnovanie buffrov pomocou '\n' je podla mna 
> taky c-like zvyk. Ale mozno som Vas len nepochopil. 
> 
> J. 
> 
> 



Další informace o konferenci Konference