[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 12845] 「 Java ネットワークプログラミ ングの真髄」を読む会第2回議事録
高橋(智)です。議事録を送ります。
---------------------------------------------------------------------------------------
Java読書会「Javaネットワークプログラミングの真髄」を読む会 第2回
日時:2008年3月29日(土) 10:00〜17:00
場所:高津市民舘 第6会議室
参加者:根本、高橋(智)、今井、小棚木、斉藤、遠藤、岩室、石黒、高橋(徹)、村山、久保田、村上、前山
3.17 Keep-Alive
■「アプリケーションレベルのping的な方法」とは?
--> アプリケーション用のメソッドを何か呼び出してみる
■Keep-Aliveが切れると何か起こるのか?
3.18 緊急データ
■緊急データの利用経験はありますか?
--> telnetは使っている。例えば CTRL+C とか。
--> パケットをモニタリングして、検証してみる。
■Javaでは受信できない
--> 代替案として UDP を使うのはどうか?
■ウェルノウンポートの割り当ての歴史について調べる
--> 誰がポート番号を決めたのか?
3.19.4 トラフィッククラスのまとめ
■RFC1345 とは?
--> RFC1349 の間違いではないか?
--> 原文は?
3.21 TCPの総まとめ
■for(;;) と while(true) のどちらが良いか?
--> 読み易さは、while(true) の方が良い
--> コンパイラによる最適化はどうなっている?
--> Javaコンパイラによる、両者の生成コード(バイトコード)の違いはあるか?
--> 宿題!!
4.2.3 チャネルを入手する
■「チャネルからソケット得る」の「チャネル」とは?
--> SocketChannelクラスのこと
■「確実」とは?
--> APIリファレンスによると、例えば、SocketからChannelを取得しようとしてもnullが返ることもある
4.3.2 バッファを入手する
■表4.3の3行目の =length は、=array.length の間違いでは?
--> そうではなく、=offset が ゼロ の間違いではないか?
--> wrapの実装を確認する
--> APIリファレンスによると、=array.length の間違いだろう
4.3.7 'flip'操作
■flipの意味は?
--> rewind とは違うもの
■なぜ、read用とwrite用に、ポジションが別々に用意されていないのか?
--> 不思議な設計だ
--> スレッドセーフではないからか?
--> 設計した時の技術文書が残っていないか?
--> 情報を求む!!
4.3.8 'compact'操作
■バッファの構造や'compact'操作は、無駄の多い操作(設計)だと思う
--> リングバッファのような実装のほうが良いのではないか?
--> サンプル実装やライブラリはあるか?
4.3.11 ビューバッファ
■List4.1のfinalの意味は?
--> 気持ち的には const の意味
4.5 I/Oの多重化
■Tomcat6から、New I/O を使うように書き換えられた?
■ノンブロッキングと非同期は意味的には同じようなものか
■多重化やノンブロッキングにすると、処理が速くなる?
--> コアやCPU数が増えると、ブロッキングと「1クライアント:1スレッド」の組み合わせのほうが速くなるのではないか?
4.5.3 Selectorクラス
■なぜチャネルにセレクタを登録するのか?
--> 逆の「セレクタにチャネルを登録する」のほうが自然なのに...
--> なぜこのような設計になったのか、情報求む!!
4.5.4 I/Oのセレクト操作
■New I/O Ver2 は、JDK7 に入るのか?
--> New I/O Ver2 の仕様やリリース予定などの情報求む!!
--> JSR203
4.5.5 セレクションキー(SelectionKey)
■SelectionKeyの関心集合を変更するメソッドの戻り値は、なぜ SelectionKey なのか?
--> 実際には this が返る
--> 戻り値は無視してよい
4.5.7 select操作
■P109のコードで「selectCount変数」や「selCh変数」は使用していない
--> ソースは完全ではないので
--> 完全なソースコードは、Webで公開されている
[Source Code [ZIP]]
http://www.telekinesis.com.au/wipv3_6/FileDispatch?id=230183
4.5.8 セレクトとタイムアウト
■P111の中ほど
--> 「計る」は「測る」の間違い
4.7.8 新しいI/O(nio)の例外
■CharacterCodingException, IllegalCharsetNameException, UnmappableCharacterException, UnsupportedCharsetException
--> チャネルやバッファの処理とどう関係があるのか?
--> ByteBufferからCharBufferを作った場合では?
次回は、P121から
---------------------------------------------------------------------------------------