对,会出现这种状况,我的解决方案是先写成byte[[]方式然后再出,这样就不会少数据了!

解决方案 »

  1.   

    一般网卡的缓存是有一定大小的,
    一个你是否调用 out.flush()方法。另外对端必须及时把数据取出来了。如果是这个原因,那么采用什么数据格式发都没有影响的。
      

  2.   

    我调用了out.flush()方法。应该不是每发一条都要调用一次吧。我是数组全部发完才调用的。
    我这边发,对方也一边接收的,但是我这边还没有发完,对方就断了,没有接收了。不知道什么原因。
      

  3.   

    呵呵,这是Java设计上的问题,你用byte[]的方式来进行传输,这是最基础的也是最不会出错的!
      

  4.   

    呵呵,你竟然传一个String,应该用byte[]
    大家都说了
      

  5.   

    我的数据量很大,都是字符串,
    如:public+123456fjdksla
        private-fdsak+12333 
        ....
    都是这样一些,如果用byte[]的发的话,那边不好接收。只能够一个一个收。很麻烦,有没有好点的方法?
      

  6.   

    我判断,肯定是你们有一方的socket有问题。
    缓冲区大小,跟这个没有关系。
    是否用flush,也跟这个没有关系。如果你可以确保你的程序没有问题,那么就应该看看对方的问题。还有,我不知道你用的是什么协议,如果是http协议,解得设置属性connection :Keep-alive
      

  7.   

    data是字符串数组吗?
    还是什么东西?
      

  8.   

    从String到byte[]:str.getBytes()
    还是从byte[]到String:new String(byte[])
      

  9.   

    data就是字符串数组,String[] data.
    请大家帮帮忙,分不够再加
      

  10.   

    我现在的问题就是以下这样:
    DataOutputStream out= port.openDataOutputStream();  
    DataInputStream in= port.openDataInputStream();
    for(int a=0;a<data.length;a++)  //data为String[]
         out.writeUTF(data[a].toString());  
    由于我data数组的数据很多,有1000多个,当我发送到中间的时候发不出去了,如我发到70条的时候就自动停止发送了。不知道什么原因?
    我这是对电脑串口进行操作的。
     wjsfr(令狐葱) 可以留个qq和msn吗?我的是:365620929,请加我。
      

  11.   

    把data放入Stringbuffer,在发送不行吗?