2010-10-18 102 views
1

我在客戶端編寫程序聊天室 我已經wirtten聊天室使用套接字編程

clientSocket = new Socket('127.0.0.1',5432); 
socketInputBuffer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 
socketOutputBuffer = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())); 
systemBuffer = new BufferedReader(new InputStreamReader(System.in)); 

,並在服務器端

sock = new ServerSocket(5432);

socketinputbuffersocketoutputbuffer寫在客戶端

現在在上面的代碼中連接後,從服務器側I,其中,我將在客戶端上讀取插座流寫入被正確建立。

但客戶端等待服務器完成其寫入。但是當我在服務器上使用shutdownoutput時,寫入和客戶端能夠正確讀取,但客戶端寫入時會發生同樣的問題。 所以我在客戶端也使用關機輸出。怎麼一回事,因爲這個我不能發送數據下回請給我建議的任何方法,使客戶端和服務器應正常工作

我用寫 [CODE] socketOutputBuffer.write(「請輸入您的姓名」); socketOutputBuffer.flush(); [/ CODE] 仍然無法使用。

+1

5432是PostgreSQL使用的默認端口:-) – 2010-10-18 16:27:26

回答

0

將數據發送到客戶端,而不關閉連接,使用上的BufferedWriter的flush方法。 此外,你需要顯示你如何做讀/寫。您可能正在使用阻塞方法,在這種情況下,客戶端將等待,直到它從服務器接收數據以在線程中進度。您可以將代碼分成兩個線程 - 一個寫入服務器的線程和一個從服務器讀取的線程,或者您可以使用Java NIO。您可以使用this project作爲基準。

0

嘗試使用flush()方法發送數據而不關閉連接。