DatagramChannelsを使用して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);
は、エラーが時間からにランダムに表示されます時間。時にはたった1回、時には5回連続している。
アイデアはありますか?
タイムアウトはありますか? – Fildor
clientChannelがメインチャネルであり、例外が発生したときに〜10個のクライアントが~50パケット/秒を送信していました。これはDatagramChannelのタイムアウトにはなり得ません – modsfabio
DatagramChannelは読み取りタイムアウトをサポートしていないという事実を知りました。 – Fildor