Java 我的客户端无法读取服务器的响应

Java 我的客户端无法读取服务器的响应,java,client-server,Java,Client Server,这是我的服务器代码 String request=di.readLine(); System.out.print(request); switch (request){ case "/login": dout.writeBytes(request); } 这是给我的客户的 String command = "/login \r\n"; try{ Socket s =

这是我的服务器代码

    String request=di.readLine();
    System.out.print(request);

    switch (request){
        case "/login":                
         dout.writeBytes(request);
    }
这是给我的客户的

String command = "/login \r\n";
       try{
       Socket s = new Socket ("localhost",8000);
       DataInputStream di = new DataInputStream(s.getInputStream());
       DataOutputStream dout = new DataOutputStream(s.getOutputStream());


       dout.writeBytes(command);
       System.out.println(di.readLine());

       }catch(Exception e){
           System.out.println("Log in error");
           e.printStackTrace();
       }
服务器可以获取我的命令,但我的客户端无法读取服务器的响应
我已经在我的telnet中尝试过了,而且效果很好。我认为问题出在我的客户端程序代码中

DataInputStream的readLine方法已被弃用-不要使用它

替换为:

BufferedReader br = new BufferedReader(new InputStreamReader(in));

当你想寄送东西时,打个电话给。刷新。输出流被缓冲,并且仅在缓冲区已满、调用flush或流关闭时发送其数据。

readLine删除行终止符,因此当您将结果发送回以供对等读取行读取时,没有行终止符,因此,对等方的读线将永远阻塞等待它。

刷新输出流。@user3194331.刷新我的客户端或服务器?仍然没有发生任何事情。当我的服务器使用线程时,它会影响我的服务器的输出吗?不理解问题。我已经解决了问题。感谢您的帮助,我已将\r\n放入服务器的输出流中,并且我已经使用不推荐的方法收到服务器的报告不会导致此问题。