まつもと ゆきひろです.
In message "[ruby-list:864] Re: [Q]gethostbyname"
on 96/10/18, Shin-ichiro Hara <sinara / blade.nagaokaut.ac.jp> writes:
|> のようにs.getpeernameをつかうしか方法は無いと思うのですが,
|> あんまり嬉しくないですね.次のリリースではTCPsocket#addrの戻
|> り値の第4要素にIPアドレス(の文字列表現,"202.25.127.133"とか)
|> を含めるようにしましょうかねえ.
|
|それはますますありがたいですね。(^_^)
そのようにしました.次のリリースをお待ちください.
|わかりました。いえ、Windows95 では、その度にダイアラーが
|立ち上がったりするので。
|#もっとも Win では socket は使えないのですが。(^^;
ふーん,そういうものなのですか.
|> |それから、gethostbyname などの関数は ruby で使えますか。
|> できれば(無理でなければ)TCPsocketなどの高レベルクラス
|> を使って欲しいですね.
|
|はい、TCPsocket の使いやすさは特筆ものですね。(Perl5 で
|も便利なライブラリがあるみたいですけれど。)でも、やっぱ
|り無いよりあったほうがありがたいです。いずれお願いします。
gethostbynameそのものにはそれほど問題は無いのですが,
pack/unpackになかなか難しい問題があるのです.というのも
Socketクラスが今提供しているようなperl風pack/unpackで
gethostbynameを実装しようと思えば,ポインタを直接埋め込むp指
定が必要になるのですが,直接ポインタの見えない(しかもGC
のある)rubyではどうやって実装して良いのか悩ましいところです.
考えられるのは
* perl風のI/Fは止めて新しくSocketクラスを作り直す(高レベル
ライブラリは変えない)
* GCに係わらないポインタのクラスを用意してpack/unpackにそ
れを使わせる
などがありますけど,どれも簡単ってわけにはいきませんねえ.
# やるなら前者かなあ
まつもと ゆきひろ /:|)