[ruby-list:49242] Re: dRuby IPv6

From: Masatoshi SEKI <m_seki@...>
Date: 2013-03-01 14:52:19 UTC
List: ruby-list #49242
咳といいます。

On 2013/03/01, at 21:40, masa <masap.hat@gmail.com> wrote:

> スイスの畠山です。
> 
> dRubyについての質問です。
> 
> 普通、同じアドレスでdRubyサーバーを起動すると、
> 
> ruby/1.9.1/drb/drb.rb:861:in `initialize': Address already in use -
> bind(2) (Errno::EADDRINUSE)
> 
> みたいなエラーが出て起動できないのですが、こちらのとあるサーバーでは2つ目まで同じアドレスで起動できてしまいます。
> 
> $ ps aux|grep puts00
>  18603  0.0  0.0 139800  5884 pts/3    Sl+  11:29   0:00 ruby
> puts00.rb druby://localhost:7777
>  18619  0.1  0.0 139816  5888 pts/5    Sl+  11:29   0:00 ruby
> puts00.rb druby://localhost:7777
> 
> サンプルは咳さんのサイトから取ってきたものです。
> http://www2a.biglobe.ne.jp/seki/ruby/src/puts00.rb
> 
> で、調べてみるとどうも2つ目は勝手にIPv6にスイッチしているようです。
> 
> $ sudo netstat -autpn | grep ruby
> tcp        0      0 0.0.0.0:4000            0.0.0.0:*
> LISTEN      4464/ruby
> tcp        0      0 127.0.0.1:7777          0.0.0.0:*
> LISTEN      18619/ruby
> tcp6       0      0 ::1:12345               :::*
> LISTEN      18142/ruby
> tcp6       0      0 ::1:7777                :::*
> LISTEN      18603/ruby
> 
> 3つ目は期待通りのエラーが出て起動しません。
> 
> OS: Debian 6.0
> Ruby: 1.9.3p327
> 
> 2つ目の起動を阻止するような対処方法をどなたかご存じないでしょうか。

ええっ、こんな風に動くんですか!!

たとえば、IPアドレスを直接書いてみたらどうなるでしょうか?

 druby://127.0.0.1:7777

などです。





In This Thread