缓存没必要设置太大,默认值就可以。你取消息最长的设置缓存的长度,花费的时间也不少。另外,可以用PrintStream代替DataInputStream,然后在构造器里设置autoFlush为true。vector是同步的,如果你处在单线程中,而且没有并发存取问题,可以用ArrayList代替。

解决方案 »

  1.   

    既然提高效率,为什么不一次多传一点呢?
    我觉得最好将消息全部写入后,来一次flush呢,构造BufferedOutputStream的时候,size在大一点,maxmessagelength += message.getMessagelength() + 16;//4为writeInt的字节数。这样缓冲一次就可以了。个人意见!
      

  2.   

    gularess(无吃哪拉) 对不起,我忘了吧挺重要的东西拷上来,我的每条消息都要得到服务器的验证,得到相应的response,处理已发送的消息后才能处理下一个hccpro(hcc) 
    PrintStream和DataOutputStream的差别我查了一下资料,我看不懂它们之间到底有多大差别,能讲将它们之间的差别、优缺点吗?
      

  3.   

    差别确实不太大,俺也不是很清楚,反正PringStream比较灵活些,可以在构造器里设置autoFlush。但出现错误时不会throw IOException,你需要用checkError方法。