Java 未从服务器获取任何响应,但能够从telnet获取响应

Java 未从服务器获取任何响应,但能够从telnet获取响应,java,networking,telnet,Java,Networking,Telnet,我首先通过vpn客户端连接,然后我就可以进行telnet,也可以在终端上粘贴请求字符串时得到响应 同样的请求,如果我尝试通过java程序,我不会得到任何响应 当我尝试使用java时,我可以看到使用netstat时已经建立了TCP连接。 TCP 10.2.2.22:1154 184.23.23.61:7565已建立 下面是发送请求的java客户机代码 Socket client = new Socket(serverIp, port); OutputStream o

我首先通过vpn客户端连接,然后我就可以进行telnet,也可以在终端上粘贴请求字符串时得到响应

同样的请求,如果我尝试通过java程序,我不会得到任何响应

当我尝试使用java时,我可以看到使用netstat时已经建立了TCP连接。 TCP 10.2.2.22:1154 184.23.23.61:7565已建立

下面是发送请求的java客户机代码

        Socket client = new Socket(serverIp, port);
        OutputStream out = client.getOutputStream();
        InputStream in = client.getInputStream();
        String test = "TUE231363**";

        StringBuffer response = new StringBuffer("response : ");
        out.write(test.getBytes());
        out.flush();

        int c;
        System.out.println("waiting for response.......>>>>>>>>>>>>>");

        while ((c = in.read()) != -1) {
            if (isEndOfResponse(c))
                break;
            System.out.print((char) c);
            response.append(c);
        }
        client.close();
        System.out.println(response.toString());
每次几分钟[5-6分钟]后,它都会在没有任何响应的情况下退出


我对网络有点陌生,有人能告诉我我缺少什么吗。

我假设您正在远程登录到您试图从Java连接到的相同IP地址和端口

telnet
连接,并且您的客户端似乎也连接了,这意味着服务器正在运行,并且它已经在正确的IP/主机上创建了一个绑定的
ServerSocket
。它甚至可能正确地调用了
accept
。但看起来服务器要么根本没有读取请求,要么无法发送响应


不管怎样,问题最有可能出现在服务器端。。。如果看不到服务器端代码,我们就没有什么可说的了。

我假设您正在远程登录到您试图从Java连接到的相同IP地址和端口

telnet
连接,并且您的客户端似乎也连接了,这意味着服务器正在运行,并且它已经在正确的IP/主机上创建了一个绑定的
ServerSocket
。它甚至可能正确地调用了
accept
。但看起来服务器要么根本没有读取请求,要么无法发送响应


不管怎样,问题最有可能出现在服务器端。。。如果看不到服务器端代码,我们就没什么可说的了。

在从客户端发送请求后,为什么不先调试服务器代码呢?您确定您的请求没有被某种防火墙阻止吗?你所看到的行为似乎与这种情况类似。你能看到对服务器的请求吗?我确信客户端没有防火墙问题。由于我可以通过telnet从服务器获得正确的响应,所以服务器上也不应该有响应。为什么不在从客户端发送请求后,首先尝试调试服务器代码?您确定您的请求没有被某种防火墙阻止吗?你所看到的行为似乎与这种情况类似。你能看到对服务器的请求吗?我确信客户端没有防火墙问题。由于我能够通过telnet从服务器获得正确的响应,所以服务器上也不应该有响应。我不能控制服务器代码,我只收到服务器地址和端口。来自服务器的咨询团队表示,这方面没有任何问题,因为我可以通过telnet从服务器获得正确的响应。如果您可以通过telnet获得正确的响应,那么您在Java客户端发送请求时一定出了问题。但是,由于您没有向我们描述协议,我们只能猜测。(我猜您遗漏了CR/LF或其他内容。)谢谢Stephen,我发现在我的请求字符串中缺少Ctrl+s,我在请求字符串中添加了“\u0013”,我得到了正确的响应。啊。我懂了。从您的问题中我不清楚您是否试图实现“telnet”。但教训是(我想)在尝试从头开始实现标准协议时,阅读协议规范文档是值得的。我无法控制服务器代码,我只收到服务器地址和端口。来自服务器的咨询团队表示,这方面没有任何问题,因为我可以通过telnet从服务器获得正确的响应。如果您可以通过telnet获得正确的响应,那么您在Java客户端发送请求时一定出了问题。但是,由于您没有向我们描述协议,我们只能猜测。(我猜您遗漏了CR/LF或其他内容。)谢谢Stephen,我发现在我的请求字符串中缺少Ctrl+s,我在请求字符串中添加了“\u0013”,我得到了正确的响应。啊。我懂了。从您的问题中我不清楚您是否试图实现“telnet”。但教训(我想)是,当试图从头开始实现标准协议时,阅读协议规范文档是值得的。