Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从Java中的服务器套接字接收响应_Java_Sockets_Bufferedreader_Readline_Printwriter - Fatal编程技术网

无法从Java中的服务器套接字接收响应

无法从Java中的服务器套接字接收响应,java,sockets,bufferedreader,readline,printwriter,Java,Sockets,Bufferedreader,Readline,Printwriter,我不熟悉Java套接字,我尝试编写一个简单的Java应用程序,它有一个ServerSocket,接受一个请求,并将输入字符串反转。当我使用telnet测试服务器套接字到该端口时,它工作了!但是对于我的客户机类,它没有给我一个响应 发送文本的服务器上的代码: System.out.println(input); String output = "";

我不熟悉Java套接字,我尝试编写一个简单的Java应用程序,它有一个ServerSocket,接受一个请求,并将输入字符串反转。当我使用telnet测试服务器套接字到该端口时,它工作了!但是对于我的客户机类,它没有给我一个响应

发送文本的服务器上的代码:

                            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不发送响应。