0

いくつかのオープンソースのJavaネットワーキングライブラリ(jdbcドライバー、apache commons netなど)を調べましたが、単純なユースケース以外でSocketChannelを使用するライブラリをまだ見つけていません(mysqlのjdbcコネクタのV3はsocketchannelを使用していました)ただし、新しいバージョンではjn.Socketを使用します)。

私はクライアントコードライブラリにのみ興味があります。(接続するライブラリ、リッスンしないライブラリ)。

参考までに、Javaソケット(クライアントのみ)の抽象化レイヤーを実装しています。SocketChannelを機能させるには、いくつかのユースケースが必要です。これまでのところ、私が見た(クライアント)ライブラリは、SocketChannelsから離れて、java 1.0 Socketベースの実装に戻っているようです。おそらく、SSLの使用に関心があるためです(わからない)。

だから、本当の問題は、SocketChannel&coをサポートする必要があるのか​​ということです。(プラットフォームはとにかく着信接続をサポートしていないため、クライアント側のライブラリの場合...まだ。)

同様に、DatagramChannelにも興味があります。(同じ質問ですが、このクラスをわざわざサポートする必要がありますか?)

他にどこを見るべきかアイデアはありますか?

4

1 に答える 1

0

NIO は、数千の接続が必要で、スレッドを節約したい場合に使用し、複雑さが大幅に増加しても問題がなく、メリットがあると考えている場合に使用します。ほとんどの場合、これらのことの 1 つまたは複数が正しくないため、そうではありません。私はそれを新しいコードに、より改造として使用することはないと思います。例については、Netty、Tomcat、Mina などを参照してください。select() はプロセス用に設計されたという議論がありますが、実際には必要のないスレッドがあります。

于 2012-08-28T23:56:05.083 に答える