[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:07130] Re: C-x & で Ruby の以下のソースを実行させると、エラーになります。



こんにちは、井上さん。

これは、
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>

Index Home