繁体   English   中英

Java - InputStream - 输入测试

[英]Java - InputStream - Test for input

我分两步向服务器发送数据:1)我将使用字节 [4] 发送的内容的长度 2)数据。

服务器侦听数据的确切长度(首先发送)然后回复。

所以我听 InputStream 并尝试获取数据。

我的问题:无论我在做什么,我只收到我发送的 stream,但服务器肯定会发送一个新字符串。

看来我不能等待 -1(字符串结尾),因为程序会超时,而且我确信服务器不会发送任何类似的东西。

因此,我使用 inputStream.available() 来找出缓冲区中还剩下多少字节。

一旦我在读取所有数据后发送 inputStream.read() ,它将因“网络空闲超时”而超时。

但我需要收听 inputStream 以确保我没有丢失信息。

为什么我只收到我发送的信息而不是服务器发送的信息? 我如何收听新项目的连接?

这是我的代码:

    private void sendData (byte[] sendBytes){
        try {
            os.write(sendBytes);
            os.flush();
        } catch (IOException ex) {
        }
    }

请帮助THD

这是您通常从阅读器读取所有数据的方式(直到另一端关闭):

//BufferedReader is 
StringBuilder data = new StringBuilder();
char[] buffer = new char[1024 * 32];
int len = 0;
while ((len = is.read(buffer)) != -1) {
    data.append(buffer, 0, len);
}

//data will on this line contain all code received from the server

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM