最近用mina寫了udp通信的程式,剛啟動一切正常,過幾個消失就會出現埠消失,重啟之后正常,看日志報錯如下
java.nio.channels.ClosedChannelException: null
at sun.nio.ch.DatagramChannelImpl.ensureOpen(DatagramChannelImpl.java:320)
at sun.nio.ch.DatagramChannelImpl.send(DatagramChannelImpl.java:428)
at org.apache.mina.transport.socket.nio.NioDatagramAcceptor.send(NioDatagramAcceptor.java:753)
at org.apache.mina.transport.socket.nio.NioDatagramAcceptor.write(NioDatagramAcceptor.java:875)
at org.apache.mina.transport.socket.nio.NioDatagramAcceptor.write(NioDatagramAcceptor.java:68)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$HeadFilter.filterWrite(DefaultIoFilterChain.java:751)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:625)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:48)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:953)
at org.apache.mina.core.filterchain.IoFilterAdapter.filterWrite(IoFilterAdapter.java:123)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:625)
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1500(DefaultIoFilterChain.java:48)
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:953)
at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolEncoderOutputImpl.flush(ProtocolCodecFilter.java:440)
求大神指點
uj5u.com熱心網友回復:
看不出什么來,只能猜測你嘗試手動關閉連接?UDP無需關閉連接,本身它是無連接的協議,也不需要關閉埠。程式運行以后,發送端直接發訊息(發完訊息不用管,也不用回收),接收端bind埠(收完訊息不用管,不用關閉,不用解綁,不用回收),再針對“發送/接收”寫好代碼就行了,不需要做任何其它操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/111055.html
標籤:網絡通信
上一篇:網路不通導致TCP重傳問題
