这个很正常。你发2次后,对方可以1次全部接收下;
网络传输中可能会重新拆包、组包所以一般都自己定协议,比如head+body模式,head中指定后面body长度,收方只收固定长度的包文

解决方案 »

  1.   

    这个很正常。你发2次后,对方可以1次全部接收下;
    网络传输中可能会重新拆包、组包所以一般都自己定协议,比如head+body模式,head中指定后面body长度,收方只收固定长度的包文
      

  2.   

    晕,为什么csdn一发贴就是2个
      

  3.   

    哦!谢谢!
    我用的nio,
    ByteBuffer data=ByteBuffer.allocate(2);
    int nbytes=clinet.read(data);
    if(nbytes>=0){
    byte[] buffer=new byte[2];
    data.get(buffer);
    int datalen=getNonSign(buffer[0])*256+getNonSign(buffer[1]);
    ByteBuffer data1=ByteBuffer.allocate(datalen);
    int nbyte=clinet.read(data1);
    if(nbyte>=0){
    String s=decode(data1);
    }}
    这样写对吗?我这样写数据发的多时,还是不行!!
      

  4.   

    datalen为数据的长度!
    decode()为数据的解密!
      

  5.   

    datalen为数据的长度!
    decode()为数据的解密!