Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Multicast Receive Broken On Windows 10 #5656

@j2man

Description

@j2man

Environment

Logstash 6.6.2 Bundled JRuby
jruby 9.1.13.0 (2.3.3) 2017-09-06 8e1c115 Java HotSpot(TM) 64-Bit Server VM 25.162-b12 on 1.8.0_162-b12 +jit [mswin32-x86_64]

Windows 10 Enterprise 64-bit
RAM 32g
4 Ethernet Adapters

Expected Behavior

JRuby should be receiving multicast data just like ruby receives multicast data.
Verified data is received properly using ruby 2.5.3p105 (2018-10-18 revision 65156) [x64-mingw32]

Actual Behavior

JRuby does not receive multicast data.

JRuby multicast send works fine verified with wireshark and vanilla Ruby

################## Rx Code
require 'socket'
require 'ipaddr'
MCAST_GROUP = {
:addr => '225.4.5.6',
:port => 12345,
:bindaddr => '0.0.0.0'
}
ip = IPAddr.new(MCAST_GROUP[:addr]).hton + IPAddr.new(MCAST_GROUP[:bindaddr]).hton
sock = UDPSocket.new
sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP, ip)
sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_REUSEADDR, 1)
sock.bind(Socket::INADDR_ANY, MCAST_GROUP[:port])
loop do
msg, info = sock.recvfrom(1024)
puts "MSG: #{msg} from #{info[2]} (#{info[3]})/#{info[1]} len #{msg.size}"
end

################## Tx Code
require 'socket'
MCAST_GROUP = {
:addr => '225.4.5.6',
:port => 12345,
}
s = UDPSocket.new
s.setsockopt(Socket::IPPROTO_IP, Socket::IP_MULTICAST_TTL, 1)
s.send("hello", 0, MCAST_GROUP[:addr], MCAST_GROUP[:port])

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions