0
我正在使用Java的小型服務器/客戶端應用程序(控制檯基礎)。該應用程序的目的是發送號碼從客戶端到服務器,並在服務器中添加(+1)並返回給客戶端。客戶端打印該行並向服務器發送增加的數字,直到它達到10.如何在Java中的PrintWriter之前使用BufferedReader
兩個類之間的連接正常,但是當我在PrintWriter
之前將BufferedReader
放在服務器類中時,該應用程序不起作用,不會引發任何錯誤。
客戶端代碼:
int count = 1;
PrintWriter out = null;
BufferedReader in = null;
Socket socket = null;
try {
socket = new Socket("localhost",3700);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
while(in.read() != 10){
out.println(count);
out.flush();
System.out.print(in.read());
};
out.close();
in.close();
socket.close();
服務器代碼:
ServerSocket serverSocket = null;
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
int count = 1;
try {
serverSocket = new ServerSocket(3700);
} catch (IOException e) {
e.printStackTrace();
}
try {
socket = serverSocket.accept();
} catch (IOException e) {
e.printStackTrace();
}
out = new PrintWriter(socket.getOutputStream());
out.println(count);
out.flush();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(in.read() != 10){
count = in.read();
count++;
};
in.close();
out.close();
serverSocket.close();
socket.close();
謝謝。它正在工作。但它只打印一行,最終結果是10.我使用'System.out.println(in.read());'在這段時間,但仍然只有一行。我需要在服務器端使用while循環嗎?還是我會忽略它? –
這是因爲你正在閱讀另一個角色,正如我剛纔告訴你的那樣。它應該是'System.out.println(ch);'。 「服務器端類似」的部分「你不明白嗎? – EJP