无法从Java中的服务器套接字接收响应
我不熟悉Java套接字,我尝试编写一个简单的Java应用程序,它有一个ServerSocket,接受一个请求,并将输入字符串反转。当我使用telnet测试服务器套接字到该端口时,它工作了!但是对于我的客户机类,它没有给我一个响应 发送文本的服务器上的代码:无法从Java中的服务器套接字接收响应,java,sockets,bufferedreader,readline,printwriter,Java,Sockets,Bufferedreader,Readline,Printwriter,我不熟悉Java套接字,我尝试编写一个简单的Java应用程序,它有一个ServerSocket,接受一个请求,并将输入字符串反转。当我使用telnet测试服务器套接字到该端口时,它工作了!但是对于我的客户机类,它没有给我一个响应 发送文本的服务器上的代码: System.out.println(input); String output = "";
System.out.println(input);
String output = "";
StringBuilder abc = new StringBuilder();
abc.append(input);
abc = abc.reverse();
abc.append("\n");
OutputStream outStream = b.getOutputStream();
PrintWriter out = new PrintWriter(outStream);
out.print(abc);
out.flush();
out.close();
客户端上应..的代码。。从服务器接收响应:
String input = JOptionPane.showInputDialog(null, "Input Message(q to Quit):");
if(input.equals("q")) {
try {
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return;
}
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
pw.print(input);
pw.flush();
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( s.getInputStream())); //BufferedReader aus Socket inputStreamReader
String line = null;
boolean wait = true;
while((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
谢谢 所以,我刚刚发现,问题在于客户端类中的PrintWriter。我必须调用
pw.println()
而不是pw.println()
,现在一切都正常了!没有println,PrintWriter没有向服务器类发送任何信息。错误readLine()
在发送行终止符之前不会返回,println()
发送一个,print()
不会返回。不过,它确实会发送所有其他信息,与flush()
一起发送。这里有一千个问题。你在读台词,但你没有发送台词。使用println()
,或以其他方式在消息后发送行终止符。注意:ServerSocket不发送响应。