我正在編寫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