[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

以上、ご参考になれば。


In This Thread