您正在写的字符串的末尾没有行尾。
String inputText = input.readLine(); writer.write(inputText); System.out.println("Client 2");该
inputText字符串不包括您键入的行尾。然后将其原样写入服务器。但是,服务器尝试读取一行:
String s = br.readLine(); System.out.println("Server 3");因此它将一直等待,直到客户端发送换行符。但是到目前为止,客户端正在等待服务器的答复,现在它们已陷入僵局。
因此,您应该
writer.newline()向客户端以及服务器的回显添加a
,这也会遇到相同的问题。每次写入后,还建议
writer.flush()在服务器和客户端上都使用。否则,它可能要等到缓冲区已满后才能进行实际写入,并且将导致相同的死锁。



