原です。 > まつもと ゆきひろです. > |(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.)