0

WP7 / iOS / Windows Appsで使用したC#で記述されたライブラリがあります。私はUdpClientを使用しているだけなので、Monoで動作します。ピアを自動的に見つけるためのオープンソースライブラリ。あなたはsalaam.codeplex.comでそれを見つけることができます

今、私は自分のアプリをAndroidに移植しようとしています。ピアを見つけたら、UDP接続を閉じて別のアクティビティに移動したいのですが、ソケットを閉じると、try catchフレーズに入れても、がスローSocketExceptionされて終了します。

それを防ぐために何ができますか?

アクティビティを終了すると、その例外が発生します。呼び出しSalaamBrowser.Close();ても同じです。

例外テキスト:

未処理の例外:System.Net.Sockets.SocketException:System.Net.Sockets.Socket.ReceiveFrom_nochecks_excで中断されました(System.Byte [] buf、Int32オフセット、Int32サイズ、SocketFlagsフラグ、System.Net.EndPoint&remote_end、ブール値throwOnError、System .Int32&エラー)[0x00000] in:0

System.Net.Sockets.Socket.ReceiveFrom_nochecks(System.Byte [] buf、Int32オフセット、Int32サイズ、SocketFlagsフラグ、System.Net.EndPoint&remote_end)[0x00000] in:0

System.Net.Sockets.Socket + Worker.ReceiveFrom()[0x00000]で:0

ありがとう

4

2 に答える 2

0

try/catch動作しない理由は、そのブロックの外部でエラーが発生しているためです。

転送を使用しAsyncていて、ソケットを閉じると、受信デリゲートが例外をスローします。

あなたは間違ったポイントから終了しています、受信デリゲートの内側からそれをしてください。

あなたがしていることは、コンピュータをシャットダウンするのではなく、プラグを抜くようなものです。

于 2013-02-24T04:32:31.323 に答える
0

クローズではなく、例外をスローしているのは受信です。あなたがそれを閉じたので、それは投げています。他に何を期待できたのかわかりません。

于 2013-02-24T03:16:48.550 に答える