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放入服务器的输出流中,并且我已经使用不推荐的方法收到服务器的报告不会导致此问题。