1
我使用DatagramChannel在Java中編寫了一個多線程UDP代理。Java:復位時網絡丟失連接
,直到出現以下異常它工作正常:
java.net.SocketException: Network dropped connection on reset: no further information
at sun.nio.ch.DatagramChannelImpl.receive0(Native Method)
at sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer(Unknown Source)
at sun.nio.ch.DatagramChannelImpl.receive(Unknown Source)
at sun.nio.ch.DatagramChannelImpl.receive(Unknown Source)
at com.fabio.rotumaster.proxy.ProxyMain.handlePacket(ProxyMain.java:189)
at com.fabio.rotumaster.proxy.ProxyMain.run(ProxyMain.java:169)
at java.lang.Thread.run(Unknown Source)
在ProxyMain.java上線189只有接收方法被稱爲:
SocketAddress sender = this.clientChannel.receive(buffer);
從時間隨機出現的錯誤時間。有時只有一次,有時連續5次。
有沒有人有想法?
是否有一些超時踢? – Fildor
clientChannel是主要通道,當發生異常時,有10個其他客戶端連接發送〜50包/秒。這不可能是DatagramChannel的超時 – modsfabio
剛剛發現,DatagramChannel不支持讀取超時,所以這不可能是原因。 – Fildor