Java - InputStream - 测试输入

标签 java inputstream midp

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

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

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

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

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

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

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

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

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

这是我的代码:

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

请帮忙 总谐波失真

最佳答案

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

//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);
}

//该行上的数据将包含从服务器接收到的所有代码

关于Java - InputStream - 测试输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6163702/

相关文章:

string - 在 Scala 中将输入流转换为字符串的惯用方法

java - 如何针对大文件的整个字节运行方法

java-me - j2me中图像转换的问题

java - Linksys 路由器 Web 管理 - 在 .NET 中自动登录

java - 授权谷歌日历API适用于个人帐户,但不适用于谷歌域帐户

java - PDFxStream 无法正确显示日语文本

java "generic generic type"

java - 读取 Swift Message Prowide (WIFE) 后关闭 fileInputStream

java - 哪个库用于使用 J2ME 访问 Gmail 电子邮件?

java-me - 如何在J2ME 中添加按钮?