【发布时间】:2020-03-19 08:43:07
【问题描述】:
我是 Java 套接字的新手,我尝试编写一个简单的 Java 应用程序,它有一个 ServerSocket,接受一个请求,并将输入字符串反转。当我使用 telnet 到该端口测试服务器套接字时,它可以工作!但是对于我的 Client 类,它没有给我任何回应......
发送文本的服务器上的代码:
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);
}
谢谢!
【问题讨论】:
-
像往常一样在这里提出一千个问题。您正在阅读线路,但您没有发送线路。使用
println(),或以其他方式在消息后发送行终止符。 NBServerSocket不发送响应。
标签: java sockets bufferedreader readline printwriter