聊天室使用套接字编程

时间:2010-10-18 16:25:39

标签: java sockets

我正在为聊天室编写程序 在客户端我有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);

客户端

中写的

socketinputbuffer以及socketoutputbuffer

现在在上面的代码连接正确建立之后,从服务器端我写入套接字流,我将在客户端上阅读。

但客户端等待服务器完成其写入。但是当我在服务器上使用shutdownoutput时它会写入并且客户端能够正确读取,但是当客户端写入时会发生同样的问题。 所以我也在客户端使用了shutdown输出。因为我无法在下次发送数据时请提示我任何方法,以便客户端和服务器正常工作

我正在写作 [码] socketOutputBuffer.write(“输入你的名字”);             socketOutputBuffer.flush(); [/码] 仍然没有工作。

3 个答案:

答案 0 :(得分:0)

以下是一个快速代码示例:

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

答案 1 :(得分:0)

要在不关闭连接的情况下将数据发送到客户端,请在BufferedWriter上使用flush方法。   此外,您需要显示您是如何进行读/写操作的。您可能正在使用阻塞方法,在这种情况下,客户端将等待它从服务器接收数据以在线程中进行。您可以将代码拆分为两个线程 - 一个写入服务器的线程和一个从服务器读取的线程,或者您可以使用Java NIO。您可以使用this project作为基线。

答案 2 :(得分:0)

尝试使用flush()方法在不关闭连接的情况下发送数据。