はじめ
私はJRakNetの生みの親、Java用の最新プロトコルRakNetの基本を実装ネットワーキング・ライブラリーです。私はこのライブラリを作って、RakNetを使うMinecraft:Pocket Edition用のマルチプレイヤーサーバーを作ることができました。Netty 5 UDPでどのアドレスが例外を発生させるかを調べる方法はありますか?
問題
は、しかし、私は、サーバーとクライアントで抱えてきた一つの問題は、ハンドラの例外処理です。無効なパケットが送信されるたびに、データが正しく読み込まれず、例外が正常にスローされます。しかし、例外を引き起こした外部アドレスを把握する方法を見つける必要があります。私は問題
通常を修正することはできませんなぜ、ServerBootstrapを使用してTCPサーバー上で、私は上司と労働者のグループをグループにできる午前例外がキャッチされたときに、私はそれが原因でどこから来ることを知っていますクライアントにはそれ専用のハンドラがあります。しかし、RakNetはUDPであり、コネクションレスでパケットがどこから来ても良いので、ハンドラは1つしかありません。例外がスローされるたびに必ず誰がそれを引き起こしたのかわかりません。私は無視された例外リストを持つことを試みたが、は極端にが非効率であると考える。コード内にlastSender
と呼ばれる変数があることを試しましたので、例外がスローされるたびに、エラーの原因となった人が表示されます。誰が例外を引き起こしたのかを理解するには良い方法ですか?または、UDP Nettyサーバーで誰がエラーを起こしたかを把握するための別の方法がありますか?
The RakNetClient class at the time of posting
The RakNetClientHandler classa at the time of posting
Here is the whole project code at the time of posting if needed
TL投稿時のソースファイル、私はどのアドレスを把握するための良い方法を見つける必要があるDR
未処理のBootstrap Netty UDPサーバー/クライアントで例外が発生しました。私はUDPでServerBootstrapを使用しようとしましたが、それはまだ述べたように1つのチャネルしか使用していないようです。here
FYI:Netty 5が死んでいます。 4.1が新しいヘッドです。 – Nicholas