in reply to Values of Multicast Socket Options on Solaris 10 are not returned by getsockopt.

Note, that getsockopt returns packed value. Try
print "ttl => " . unpack("L", $ttl) . "\n";
instead. Also, when you're setting socket option you should pack its value.
  • Comment on Re: Values of Multicast Socket Options on Solaris 10 are not returned by getsockopt.
  • Download Code

Replies are listed 'Best First'.
Re^2: Values of Multicast Socket Options on Solaris 10 are not returned by getsockopt.
by Anonymous Monk on Nov 04, 2012 at 11:55 UTC

    thank-you.

    i came across the same solution. note that the TTL and LOOP multicast options are 1 byte long, so i had to do $ttl = unpack('C', $ttl).

    i had similar problems using IO::Socket (V1.28) and found that the unpack done in it assumed integer values when unpacking. it also did not do packing when setting values.

    in summary, i was trying to implement the IO::Socket::Multicast module as described in Network Programming with Perl by Lincoln D. Stein, 2001, found in chapter 21, page 620. but none of the examples would work. so i stepped back and tried implementing using the basic Socket module.

    now that i have this step working, i hope to make more progress.