まつもと ゆきひろです

In message "[ruby-list:5873] Are there any sample programs for UDP socket ?"
    on 98/01/13, Toshihiko SHIMOKAWA / 下川俊彦 <toshi / csce.kyushu-u.ac.jp> writes:

|さて UDP を使ったプログラムを作ろうと思っているのですが、ruby でのやり方
|がよく分かりません。ちなみに C でのソケットプログラムの経験はあります。

さて,まずいくつかの点で謝罪した方がよいような気がします.

  1. UDPソケット専用のクラスはまだありません.Socketクラスで
     Cとほとんど同じようにぽちぽちプログラムするしかないです.
     面倒ですね.Rubyらしくないですね.その通りです.ごめん
     なさい.

  2. C言語でシステムコールのsendを使ったことがありますか? 
     Rubyのsendは基本的にシステムコールのsend/sendtoと同じで
     す.ただし,以下の点が違います.

        * sendtoのアドレスはpackした構造体を使います.

        * Rubyの文字列は長さを知っていますからmsg,lenの代わ
          りに文字列1つを使います.

  3. send(2)というのはUNIXのmanのsection 2(システムコール)の
     項目と言う意味です.説明が少なくてごめんなさい.

  4. なによりRubyでUDPプログラミングをしたことのあるひとがい
     ません.バグがあるかも.

  5. ちょっと今日は忙しいので(これから帰ってしまいます),サ
     ンプルは明日以降になります.今晩時間があれば作ってみま
     すので(Gtkがうまく行けば ^^;;;),もしかしたら明日か明後
     日にはサンプルを出せると思います.多分,パッチも.^^;;;

|しかし send の使い方がよくわかりません。第一引数 mesg の型はなんでしょう
|か? 第二引数 flags については send(2) を参照とあるのです、これは整数値だ
|と予想しています。最後の to もよくわかりません。connect メソッドと同じ引
|数かな? と予想してみたものの pack されたソケットアドレス構造体の作り方が
|分かりませんでした。

まず,UDPプログラミングの経験があればそんなに難しくはないで
しょう.問題はやはり洗練されていないことと,使い込まれていな
いことですね.では,後程.

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