急救,SOCKET通讯时DataInputStream.readInt()时,偶尔程序死掉,这个问题困扰了我好长时间了,怎么,也找不到原因,请各位大侠帮忙。

解决方案 »

  1.   

    我是菜鸟,能不能请教一下,两台机器之间通过socket发送和接收消息,这些地址和端口是怎么设的,需要用其他的应用服务器吗,例如:jboss
      

  2.   

    readInt是high level API, 需要读到4个byte,如果网络bandwidth低,或者network cost太大,可能只过来了2个byte,Java处理会有问题,所以你要用byte来读,比如说,用BufferedByteStream,然后再用Readers来decorate,再用来处理readInt问题在网络编程中,我不推荐你用Java high level API,那些都是用来本地处理的Java IO API,网络可能的状况和错误挺多的,用byte读,可以处理所有。
      

  3.   

    非常感谢lesstif(品位人生),程序也偶尔报内存溢出的错误,然后程序就死了,我估计就像你象你所说,读字节的问题,你说是吗? 
      

  4.   

    基本上可以肯定是代码的问题
    不太同意lesstif(品位人生)的说法。你用readInt也没什么的,不会出现问题