まつもと ゆきひろです
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プログラミングの経験があればそんなに難しくはないで
しょう.問題はやはり洗練されていないことと,使い込まれていな
いことですね.では,後程.
まつもと ゆきひろ /:|)