2014-01-28 48 views
0

我想學習套接字編程。我用InputStreamReaderBufferedReader寫了客戶端,我讀了從服務器發送的msg。 對於服務器,如果我寫PrintWriterprint方法它的工作原理和write方法是not,爲什麼? 和OutputStreamReadernot at all useful,因爲它沒有print方法和write,我沒有在客戶端獲取消息。 在此先感謝 編輯:客戶:用於在服務器的套接字中寫入的OutputStreamWriter有什麼問題?

Socket c=new Socket("143.22.165.27",6000); 
     InputStreamReader isr=new InputStreamReader(c.getInputStream()); 
     BufferedReader br=new BufferedReader(isr); 
     String s=br.readLine(); 
     System.out.println(s); 

Srver

Socket sock=s.accept(); 
      OutputStreamWriter out = 
        new OutputStreamWriter(sock.getOutputStream()); 
       out.write("..........."); 
+1

您可以向我們顯示您的代碼。 –

回答

3

我假設你正在使用在客戶端的BufferedReaderreadLine()方法。所以我的猜測是,當你在服務器上使用write()方法時,你不會寫任何換行符。因此,客戶端永遠不會到達行的末尾。 A PrintStreamPrintWriter會在您調用println()方法時爲您添加換行符。

當然,沒有任何代碼甚至是對問題的描述,很難說清楚。

+0

是的,我粘貼的代碼。這是原因。 – Rajesh

0

每次當您想通過out.write(msg)發送數據部分時,您必須使用out.flush()。

相關問題