Javaで非ブロッキングTCP接続を達成する最も良い方法は何ですか?私は通常のストリーム(時々SSL)でソケットを使用できるようにしたい。私はAndroid 2.1をターゲットにしなければならないので、最新のものと最大のものを買う余裕はない。Javaで非ブロッキング接続
答えて
SocketChannel
とconfigureBlocking(false)
を使用できます。複数のノンブロッキングI/Oチャンネルがあり、それらをすべて1つのスレッドから使用する予定がある場合は、Selector
も非常に便利です。
一般的に、ブロッキングソケットを使用してエラーが発生しにくく、複数のスレッドを使用して、I/Oが完了するのをブロックされている間にアプリケーションが有用な作業を継続できることに注意してください。
+1:完全に同意します。ブロッキングモードはデフォルトであり、使用するにはconfigureBlockingを呼び出す必要はありません。 NIOは2002年にJava 1.4で導入され、数年前にAndroidを先行させました。 ;) –
私はNIOの使用について考えましたが、実際にはSSLでうまく動作しません。 –
セレクタにSSLSocketChannelを渡す際に実際に問題があるようです。セレクタを使用する場合は、[この質問](http://stackoverflow.com/questions/867751/ssl-and-socketchannel)を参照してください。残念ながら、最初の回答のリンクが壊れているようです。 –
- 1. java非ブロッキングHTTPクライアント
- 2. PHP - 非ブロッキング、送信TCP接続 - どのように?
- 3. 非ブロッキングのpythonソケット
- 4. Javascriptは同期(ブロッキング)または非同期(非ブロッキング)でデフォルトでは
- 5. Javaで非ブロッキング先物を実装する方法
- 6. MPIで非ブロッキングの送信とブロッキング受信の使用?
- 7. Android - 非ブロッキング回転ProgressDialog
- 8. Erlang ssl非ブロッキング並列アクセプタ
- 9. 非終了/非ブロッキングWindows Mobile App
- 10. 非同期接続
- 11. 非同期接続
- 12. Java接続プールオプション
- 13. 接続プールJava
- 14. Javaモックデータベース接続
- 15. Java - ブルートゥース接続
- 16. Javaアプレットネットワーク接続
- 17. Javaソケット接続
- 18. Javaデータベース接続
- 19. Healthvault Java API:接続タイムアウト:接続
- 20. Java、JDBC接続プール、JDBC接続ロールバック
- 21. Javaでの接続リセット
- 22. JavaでのHTTPクライアント接続
- 23. javaでデータベースに接続
- 24. 非ブロックソケットとの接続()
- 25. 非同期ソケット接続
- 26. mysql接続のタイムアウト、非アクティブ
- 27. IsolationLevel.ReadUncommittedブロッキングSQL Server 2008への別の接続での読み取り
- 28. C#で非ブロッキング非同期ゲートを作成する
- 29. Javaソケット接続Reuse
- 30. Java - 接続のステートメント
ブロッキングTCP接続を使用しますが、それを管理するコードを別のスレッドに配置しますか? – aroth
私はこれをやっていますが、ネットワーキングの状況によっては、接続がかなりブロックされることがあります。特にephoneがgsmとumtsの間で切り替えを続けている場合は特にそうです。 –