我想问一下 我从一个端口读取数据包 出现丢包现象
用的是Apache MINA 框架  ProtocolDecoder 
但是从 tcpdump 上监控 发现 数据包 是完整的 
请各位高手 赐教
这是问题出现是 的错误信息
警告: EXCEPTION: 
java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcher.read0(Native Method)
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)
        at sun.nio.ch.IOUtil.read(IOUtil.java:206)
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)
        at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:156)
        at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:41)
        at org.apache.mina.common.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:408)
        at org.apache.mina.common.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:387)
        at org.apache.mina.common.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:379)
        at org.apache.mina.common.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:43)
        at org.apache.mina.common.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:678)
        at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)

解决方案 »

  1.   

    没用过mina,不过从异常信息来看,肯定是对方关闭连接的错误。可能程序处理问题,也可能是网络问题。
      

  2.   

    java.io.IOException: Connection reset by peer 是因为对方断链引起,链接断了肯定数据收不全。
    注意:mina是通过事件来管理的,它不会一次把所有数据收全。
      

  3.   

    我今天也碰到此现这个错误,不过我这边是在作压力测试的时候出现的,如果机子起动二十个终端去连服务器,感觉终端不知道什么原因就把该连接断开了,所以导致服务端出现很多的connect reset:by peer,但我如我起十个终端的话,它就是OK的,不知道是什么原因????