From: Akif Tokuz Date: 2007-09-07T19:51:53+09:00 Subject: winxp multicast socket reading problem Hi I am trying to read some data from a multicast address. So I googled and found this example. require 'socket' require 'ipaddr' MULTICAST_ADDR = "225.4.5.6" PORT = 5000 ip = IPAddr.new(MULTICAST_ADDR).hton + IPAddr.new("0.0.0.0").hton sock = UDPSocket.new sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP, ip) sock.bind(Socket::INADDR_ANY, PORT) loop do msg, info = sock.recvfrom(1024) puts "MSG: #{msg} from #{info[2]} (#{info[3]})/#{info[1]} len #{msg.size}" end It turned out that one-click installer for WinXp(ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]) has a bug on Socket::Constants and Socket::IP_ADD_MEMBERSHIP is not defined. As explained in http://rubyforge.org/tracker/?func=detail&group_id=167&aid=9438&atid=715 I added this line Socket::IP_ADD_MEMBERSHIP = 12 unless socket.const_defined?('IP_ADD_MEMBERSHIP') to the top of my code. But it didnt work again. Now it says error on setsockopt:Invalid argument(EINVAL) What could be the problem? Thanks in advance. Akif, -- Posted via http://www.ruby-forum.com/.