我有一个客户端读取用户输入然后将其发送到服务器。然后服务器假设发回输入,客户端想要读取它。
while(true)
{
String input = "";
while (input != null){
input = "";
try {
input = in.readLine();
} catch (IOException e1) {
// TODO Auto-generated catch block
System.out.println(e1 + "Exception occured when reading user input");
}
// Sleep
try
{
Thread.sleep(USER_THROTTLE);
}
catch(Exception e)
{
System.out.println(toString()+" has input interrupted.");
}
if (input != null && allowedInputs.contains(input)){action_event(input , out, socket);}
}
}
这是服务器端尝试从用户获取输入。
这是action_event方法。
public static void action_event(String input, PrintWriter out, Socket socket)
{
System.out.println(input);
if(input .equals("w")){out.println("Got input from you : " + socket.toString() );}
}
下面的代码是在从读取到来回写入的while循环中运行的客户端。
这是while循环。
public static void main(String[] args) {
// TODO Auto-generated method stub
User_Connection user = new User_Connection();
user.set_up();
while (true){
user.write();
user.read();
}
}
下面是写入和读取方法。
public void write()
{
String input = "";
Scanner scan = new Scanner(System.in);
input = scan.nextLine();
out.println(input);
}
public void read()
{
String server = "";
while (server != null){
server = "";
try {
server = in.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(server != null){System.out.println(server);}
}
}
当我进入" w"在客户端上,服务器获取它并回复。然后当我进入" w"再次在客户端上,服务器没有得到它,也没有回复。我不明白为什么会这样。我将不胜感激任何帮助。如果我需要发布更多信息,我很乐意应要求提供。