有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从socket读取时返回的java空字符串

我正在尝试使用tcp/ip连接到服务器

我可以连接到服务器,但得到的响应为空

代码

 import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.Socket;

    public class Client {
        private static final String SERVER_ADDRESS = "192.168.64.79";
        private static final int TCP_SERVER_PORT = 6669;

        public void connect() {
            BufferedReader in;
            try {
                // Socket skt = new Socket("50.128.128.254", 6669);//ip,port
                Socket clientSocket = new Socket(SERVER_ADDRESS, TCP_SERVER_PORT);// ip,port

                System.out.println(" client Socket created ..Enter input : ");
    //          BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));

                PrintWriter outToServer = new PrintWriter(clientSocket.getOutputStream(), true);

                String ToServer = "123";//inFromUser.readLine();
                outToServer.println(ToServer);

                 in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));


                System.out.print("Received string: \n");

        //          while (!in.ready()) {
        //          }

// in is never ready
                    System.out.println(in.readLine()); // NULL returned

        //          System.out.print("'\n");
                    in.close();
                    System.out.print("connection closed");

                } catch (Exception e) {
                    System.out.print("Whoops! It didn't work!\n");
                    e.printStackTrace();
                }

            }

        }

我提到Getting Null String when reading from a socket

编辑 有时我得到空响应,有时我得到连接重置错误(对于相同的输入)

java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
    at sun.nio.cs.StreamDecoder.read(Unknown Source)
    at java.io.InputStreamReader.read(Unknown Source)
    at java.io.BufferedReader.fill(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at Tcp.Client.connect(Client.java:33)
    at Pms.main(Pms.java:8)

谢谢


共 (0) 个答案