On Thu, 17 Aug 2006, Dave Korn wrote: > On 17 August 2006 14:45, Brian Ford wrote: > > On Thu, 17 Aug 2006, Alessandro Saffiotti wrote: > >> imreq.imr_interface.s_addr = INADDR_ANY; > > > > INADDR_ANY is in host byte order, but you need network order for this > > call. > > Yeh, that's it! And don't forget to use left-handed bits - the ordinary > right-handed ones are no good for INADDR_ANY. :)
Sorry, not enough coffee yet this morning ;-). I was up all night with my two month old daughter. My point should have been that I use this construct every day in 1.5.18 and 1.5.21 within our application and it works fine. I saw very few differences. Here is my snippet in case I missed something else obvious: fd = socket(AF_INET, SOCK_DGRAM, 0); Oh yeah, you must call the setsockopt below after the bind on windows. Search MSDN for why. { struct ip_mreq mreq; mreq.imr_interface.s_addr = htonl(INADDR_ANY); mreq.imr_multiaddr.s_addr = inet_addr("224.0.0.1"); if (setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) perror("Unable to join 224.0.0.1"); } -- Brian Ford Lead Realtime Software Engineer VITAL - Visual Simulation Systems FlightSafety International the best safety device in any aircraft is a well-trained crew... . -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/