2010-10-18 107 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()方法发送数据而不关闭连接。