客户端和服务器输入和输出

时间:2015-04-22 13:16:17

标签: java sockets network-programming client-server

我有一个客户端读取用户输入然后将其发送到服务器。然后服务器假设发回输入,客户端想要读取它。

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"再次在客户端上,服务器没有得到它,也没有回复。我不明白为什么会这样。我将不胜感激任何帮助。如果我需要发布更多信息,我很乐意应要求提供。

0 个答案:

没有答案