我正在编写一个小型ChatServer程序,我已经将错误确定为客户端代码的这一部分
public void run() {
Client client = new Client();
try {
Socket s = new Socket("localhost", 25555);
client.os = new DataOutputStream(s.getOutputStream());
InputStreamReader isr = new InputStreamReader(s.getInputStream());
BufferedReader br = new BufferedReader(isr);
while (!exit){
String str = Input.read_string();
client.os.writeUTF(ID+"=CLID"+str.toLowerCase());
client.os.flush();
System.out.println(br.readLine());
}
} catch ( IOException e) {
e.printStackTrace();
}
}
Input.read_string()
代码如下:
class Input{
public static String read_string() {
String read="";
try {
read = new BufferedReader(new InputStreamReader(System.in), 1).readLine();
} catch (IOException ex) {
System.out.println("error reading from the input stream!");
}
return read;
}
}
当我将System.out.println(br.readLine());
放在while
循环的开头时,第一次另一个客户端聊天,但之后必须输入以获得下一次更新。
此外,这可以通过上一个错误修复,但是当它确实更新时,它是另一个客户端发送的最后一个错误。