Java Socket BufferedReader Null

时间:2018-06-16 16:06:22

标签: java sockets null bufferedreader

public static void main(String[] args) throws IOException {
    String hostName = "127.0.0.1";
    int portNumber = 4848;
    Socket echoSocket = new Socket(hostName, portNumber);
    PrintWriter out = new PrintWriter(echoSocket.getOutputStream(), true);
    BufferedReader in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
    BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
    String userInput;
    while ((userInput = stdIn.readLine()) != null) {
        out.println(userInput);
        System.out.println("echo: " + in.readLine());
    }
}

它应该通过将它发送到套接字并再次从套接字中获取来回显您所写的内容。会发生什么事情,当我输入内容并按下输入时,大约需要10秒,然后是echo: null

预期

输入

  

测试

输出

  回声:测试

现实

输入

  

测试

输出

  

echo:null

我的问题是:

  • 我在做什么新手的错误?
  • 如何解决?

    在评论之前阅读

    我需要测试套接字的功能。通过做这样简单的事情,它有助于我理解如何使用它们。我想创建一个实时聊天服务器。但是,如果这个简单的程序不起作用,我不能。我不傻到不使用userInput。我知道。

1 个答案:

答案 0 :(得分:0)

问题是我正在同一InputStream上访问OutputStream的{​​{1}}和echoSocket。谢谢kumesana。不用谢,EJP。大帮忙