接收数据的多少取决于你定义的接收用的数据组的大小:
byte [] RecvBytes = new byte [10000];你发送端一直在发送,所以read函数会阻塞接收,知道接满10000或超时返回。
byte [] RecvBytes = new byte [10000];你发送端一直在发送,所以read函数会阻塞接收,知道接满10000或超时返回。
解决方案 »
- 学android开发需要购买硬件吗?比如买个平板电脑?
- 在android上做元件/library 開發
- 问个问题
- android 的高手们 请教一个问题.
- debug出现Source not found.和一个Edit Source Lookup Path
- 请教:android转换json字符串
- 大神们帮忙解决一下这个问题 为什么连接不上数据库
- 如何返回主界面?
- 求助!: 安卓手机浏览器不能通过电脑hosts映射的域名访问web程序
- android连接远程sql server的问题,急啊~~~~~~~~~~~~~
- android hello world报错
- windows 7系统可以安装andorid 开发环境吗?
int firstChar = localInputStream.read();
int nLength = localInputStream.available();
byte[]array = new byte[nLength+1];
array[0] = (byte)firstChar;
localInputStream.read(array, 0, nLength);
Log.i("Data Length", Integer.toString(nLength));这样的话,里面数据也还是不对啊,我是想接收一帧的数据~
available方法只是返回当前已经被缓存接收的数据量,而不是发送端所发送的所有数据量,故,你用该方法的返回值作为生成接收缓冲区是不正确的。如果你非要接收固定的数据,那么需要分开通讯。比如你要发送1024个字节的数据,你先发送诸如:"bytes:1024"的信息给接收端,接收端取到该信息,解析数据量,之后根据该数据量接收后面发送的数据。