byte[] buffer当在接收端取到buffer后,buffer.length不就是长度了么很简单啊,不知道是不是理解清楚你的意思了

解决方案 »

  1.   

    可是在接收的时候,这个byte[] buffer,没有初始化,是不行,你有没有具体试过·
      

  2.   

    问题OK了
    DataInputStream dis= new DataInputStream(new Socket().getInputStream);
    byte buff[]= new byte[1024];
    int i = dis.read(buff);
      

  3.   

    谁能知道客户端会传来多大的byte[]?只能尽量的定长一些
      

  4.   

    byte[]定义多长没关系的,每次读如长度是有返回值的,这个值最大是byte[]的大小,也就是说你可以循环读取,每次读入的长度最长是byte[]的长度(可能小于这个长度),累加读入长度直到读完,最后得到读入累计,也就是你所需要的读入数据的总长度.
    事实上,如果数据流很大的时候不可能一次读完,缓冲区也不可能长到能容纳任何长度的数据.缓冲区(byte[])是用来缓冲每次读入的数据的,而不是非得一次读完所有的数据到byte[]中.
    上面有几个贴对byte[]的作用可能没有完全理解清楚.