接收数据的多少取决于你定义的接收用的数据组的大小:
byte [] RecvBytes  = new byte [10000];你发送端一直在发送,所以read函数会阻塞接收,知道接满10000或超时返回。

解决方案 »

  1.   


    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));这样的话,里面数据也还是不对啊,我是想接收一帧的数据~
      

  2.   

    你对Socket的用法是错误的,至少我这么认为。
    available方法只是返回当前已经被缓存接收的数据量,而不是发送端所发送的所有数据量,故,你用该方法的返回值作为生成接收缓冲区是不正确的。如果你非要接收固定的数据,那么需要分开通讯。比如你要发送1024个字节的数据,你先发送诸如:"bytes:1024"的信息给接收端,接收端取到该信息,解析数据量,之后根据该数据量接收后面发送的数据。