【发布时间】:2012-06-27 07:31:53
【问题描述】:
C#.Net 应用程序必须从 PC(服务器端)通过 Wi-Fi 向 Android 设备(客户端)发送 22000 字节的数据。但 Android 设备中的 dataInputStream 仅显示 2048 字节。
dataInputStream = new DataInputStream(workerSocket.getInputStream());
byte[] rvdMsgByte = new byte[dataInputStream.available()];
for (int i = 0; i < rvdMsgByte.length; i++)
rvdMsgByte[i] = dataInputStream.readByte();
String rvdMsgStr = new String(rvdMsgByte);
我对以下内容感到困惑:
- PC只能发送2048字节的数据吗?
- 或者,Android 设备是否只有 2048 字节的容量来接收数据?
-
或者,即使设备接收到所有字节,
dataInputStream是否也仅显示 2048 个字节?如果(data_received
【问题讨论】:
-
可能是
dataInputStream.available()作为公共方法available()的限制“返回估计的字节数,可以在不阻塞的情况下读取或跳过更多输入。”根据developer.android.com/reference/java/io/InputStream.html。如果需要,尝试将字节数组的大小设置为 22000,看看它是否有效... -
@herom 我先做了同样的事情。我将字节大小设置为 30000,但它显示 EOFException。 :)
-
我明白了 ;) @Jon Skeet 解释得很好,很高兴听到它有效 :)
标签: c# java android .net datainputstream