簡體   English   中英

使用套接字編程的聊天室

[英]chat room using socket programming

我正在為我在客戶端的聊天室編寫程序

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寫在客戶端

現在在上面的代碼中,從服務器端正確建立了連接,然后我在客戶端流中寫入套接字流。

但是客戶端等待服務器完成其寫入。 但是,當我在服務器上使用shutdownoutput時,它會寫入並且客戶端能夠正確讀取,但是客戶端寫入時會發生相同的問題。 所以我也在客戶端使用了shutdown輸出。 因為這個原因,下次我無法發送數據,請給我建議任何方法,以便客戶端和服務器可以正常工作

我正在使用[CODE] socketOutputBuffer.write(“輸入您的名字”); socketOutputBuffer.flush(); [/ CODE]仍然無法正常工作。

這是一個快速的代碼示例:

http://www.kieser.net/linux/java_server.html

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM