原です。

> まつもと ゆきひろです.

> |(1)ruby の Socket#conncect も同じでタイムアウトは見てない
> |ですよね? fcntl はどうやったら使えますか?うまく使えたとして
> |やはり Thread との相性は悪いですか?
> 
> タイムアウトは見ていません.fcntlはIO#fcntlを使えばできると
> 思います.

ええっ!?fcntl はやはりあるんですね。(前にも聞いたことある
が。^^;)マニュアルに無いですよ。もしかして ioctl も隠れてい
るのでは?


> ただし,わたしはNONBLOCKなんてつかったことないんで,
> 本当にできるかどうか自信が無いです.そもそもconnectのタイム
> アウトをselectで検出できるのだろうか?

mix の awk/library 331番に santa さんのややこしい connect が
あって(.pl)これを使わせてもらってます。やはり有効なようです。


> # h2rbなんてのがないのも問題ではあるな.

h2ph してからなら簡単に ph2rb できるけど。


> |(2)TCPsocket.open は、タイムアウトを見ているようですが、こ
> |れは内部での connect の部分でしょうか?タイムアウトは何秒にな
> |っていますか?その秒数を制御できませんか?
> 
> 内部のconnectシステムコールのさらに中です.タイムアウトして
> いるのはカーネルなんですね.秒数の制御はsockoptでできるかも
> 知れません(良く知らないんですけど).

なるほど sockopt で出来そうですね。やってみます。


> |(3)socket stream からの read もタイムアウトを見たいのですが、
> |もちろん select を使えば、実現できると思いますが、これは Thread
> |との相性はどうなるでしょうか?いい方法はありますか?
> 
> threadを使えばタイムアウト見なくても良いんじゃないかと思うの
> ですけど(そのsocketを監視するthreadを用意してブロックしてし
> まえば良い)


その手があったか!thread は偉大だ。
---===-=-=-=-=-=-=-=-=======--=-=-=-==-=-===-=-=-=-=-=-=--=-==-=--
                            Shin-ichro Hara(Nagaoka Univ.of Tech.)