我通过用Java编写一个小型聊天室程序来尝试网络。因为它是聊天室,所以控制台不断要求用户输入。我的问题是,在仍然要求输入的同时从服务器中的另一个人打印消息后,控制台停止显示我键入的内容。但是,仍然会收集输入,因此用户仍然可以输入消息。没有视觉反馈。我尝试了三种不同的输入方法,BufferedReader(我目前仍在使用),扫描仪和系统控制台。他们都有同样的问题,这让我相信它是Windows控制台。我的问题是,是否可以避免这种情况,或者它只是Windows控制台的缺陷?这是我的代码,输入是BufferedReader:
// This runs until the console is closed
while(true)
{
// If the user has input something, send it to the server
if(input.ready())
{
String message = input.readLine();
if(!message.equals(""))
{
client.sendString(message);
}
}
// If the server has a message for the client, print it
if(client.input.available() > 0)
{
System.out.println(client.getString());
}
}