[ruby-list:50366] Re: [質問] Ruby socket.send でUDP Packet が出ない? ネットワーク環境によるものか?
From:
Toshihiko Ichida <dogatana@...>
Date:
2016-08-01 13:21:58 UTC
List:
ruby-list #50366
こんばんは。市田です。
今日再度実行したのですが、ごく稀に成功、ほとんどが失敗という不思議な状況
に変わりました :(
Starting SSDP search...
Couldn't find any UPnP devices.
Wiresharkでみた時、マルチキャストパケットが発信されていないように思えた
ので、色々試行錯誤してみたところ、socketを作成するときにネットワークイン
タフェースを明示的に指定したところ、安定して動作するようになりました。
前回からの変化点として、VirtualBoxをインストール・アンインストールしてい
るのでそれが影響した可能性があるかもしれません。
def build_socket
socket = UDPSocket.open
socket.do_not_reverse_lookup = true
mif = IPAddr.new('192.168.11.24').hton
socket.setsockopt(:IPPROTO_IP, Socket::IP_MULTICAST_IF, mif)
socket.setsockopt(:IPPROTO_IP, :IP_MULTICAST_TTL, true)
socket.setsockopt(:SOL_SOCKET, :SO_REUSEADDR, true)
socket
end
以上、ご参考になれば。