我正在编写Java客户端/服务器应用程序。它应该允许客户端将文本数据发送到服务器。这种通信应该使用相同的连接重复多次。java - 通过套接字连续发送数据
我写这样的:
// On a server:
ServerSocket serverSocket = new ServerSocket(port);
Socket socket = serverSocket.accept();
socket.setKeepAlive(true);
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
if (reader.ready()) {
for (String line = reader.readLine(); line != null; line = reader.readLine()) {
// do something with line
}
}
// On a client:
Socket socket = new Socket(host, port);
socket.setKeepAlive(true);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write("Some data from client to server");
writer.flush();
的问题是:我不能在服务器上读取之前我关闭的OutputStream在客户端上。或者如果它已经关闭,我不能再打开客户端上的OutputStream。我怎样才能连续发送和读取数据?
摆脱ready()测试。除了一个bug之外,它什么也没有加 – EJP