まつもと ゆきひろです.

In message "[ruby-list:2158] [Req] pack/unpack"
    on 97/02/18, Keiju ISHITSUKA <keiju / shljapan.co.jp> writes:
|けいじゅ@SHLジャパンです. 

|通信プロトコルなどでは不定長のデータはその繰り返しをプロトコルの中に入
|れることがい多いと思います.

ま,それはそうなんですけど.socketのメソッドに入れることには
どうも抵抗があります.一応,rubyの機能拡張の基準は

  * 汎用である
  * 他の機能の組合せで実現できない
  * 上位互換性がある
  * 実現があまり大変でない(と嬉しい)

になっています.この基準で今回の提案を考えると

  * 汎用ではないことはない(ちょっと限定されますが)
  * 他の機能の組み合わせで実現できる(このプロトコル用のクラ
    スを作れば良いような).
  * 石塚さんの提案の実装にはpackと同様の機能を再実装する必要
    がありそう.

という理由であまり乗り気ではありません.今回の場合それだけの
苦労を(私がですけど ^^;;;)するよりは,

  def dataread(io)
    len, = io.read(2).unpack("n")
    return io.read(len)
  end

というメソッドを作った方がよっぽど良いと思うからです.

                                まつもと ゆきひろ /:|)