[xyzzy:07130] Re: C-x & で Ruby の以下のソースを実行させると、エラーになります。
- Subject: [xyzzy:07130] Re: C-x & で Ruby の以下のソースを実行させると、エラーになります。
- From: Hiroshi Saito <HiroshiSaito@xxxxxxx>
- X-mailer: Becky! ver. 2.00.03
こんにちは、井上さん。
これは、
DOS窓で直接実行すると動くけど、C-x & だと
うまく行かないということでしょうか?
そうでなかったら、もう一度 ruby-listに出した方が良いのではないでしょうか?
あと、ruby -v はなんと出ますか?(cygwin ? mswin ?)
ちなみに、linuxで $ man connect すると
EALREADY
The socket is non-blocking and a previous connection attempt has
not yet been completed.
EALREADY
ソケットが非停止(non-blocking)に設定されており、
以前の接続が完了していない。
と書いてありました。
憶測ですが、なんども実行しているうちに closeできていないsocketがたくさんできたり
しているのではないでしょうか?
sock.close は ensureしてやった方が良いと思います。
> 井上です。
>
> xyzzyで以下のソースを取り込み
> C-x & でRubyを実行させると、エラーになります。
>
> test-sock.rb:2:in `open': errno EALREADY triggered - "connect(2)"
> (Errno::EALREADY)
> from test-sock.rb:2
>
> Rubyのソースは以下の通りです。
>
> require "socket"
> sock = TCPSocket.open("www.yahoo.co.jp", 80)
> sock.print "GET /en/ HTTP/1.0\r\n\r\n"
> while line = sock.gets
> print line
> end
> sock.close
>
> 環境によって、動作したり
> 2回目以降にエラーが発生したり
> 原因がいまいちわかりません。
>
> ruby-1.6.4 preview5
>
> FAQならすみません。
--
Hiroshi Saito <HiroshiSaito@xxxxxxx>