X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=1.3 required=5.0 tests=AWL,BAYES_00,DNS_FROM_OPENWHOIS,SPF_HELO_PASS,SPF_PASS,WHOIS_MYPRIVREG X-Spam-Check-By: sourceware.org Message-ID: <22120193.post@talk.nabble.com> Date: Fri, 20 Feb 2009 05:40:00 -0800 (PST) From: victhor_1983 To: cygwin AT cygwin DOT com Subject: Re: Problem Adding Membership Multicast Errno 22 In-Reply-To: <20090220124814.GC24834@calimero.vinschen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable References: <22119431 DOT post AT talk DOT nabble DOT com> <20090220124814 DOT GC24834 AT calimero DOT vinschen DOT de> X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Thanks for the advice, I just tried it, but I keep getting the same mistake. Maybe there is no IP_ADD_MEMBERSHIP option for Multicast in Cygwin? Victor Corinna Vinschen-2 wrote: >=20 > On Feb 20 04:05, victhor_1983 wrote: >>=20 >> Hi, >>=20 >> I have written a C++ program for a Multicast Client that compiles and >> runs >> on Ubuntu. I tried to compile and run it on Cygwin version 1.5.25 (June >> 2008). However, when I run the code, the Multicast receiving socket >> doesn't >> seem to work. The problem comes when I use setsockopt() to add Multicast >> membership. The errno() declaration returns 22 (EINVAL), but I cannot >> find a >> solution. My code is: >>=20 >> int Descriptor, Descriptor2, payloadoffset,sqnum, T_ns, status; >> long nsegundos,Dnsegundos, segundos, Dsegundos; >> struct sockaddr_in Direccion, Direccion2; >> unsigned short Puerto; >> struct timespec valorcontador,valorcontador2,Next; >> struct ip_mreq Multic; >>=20 >> Descriptor=3Dsocket(AF_INET,SOCK_DGRAM,0); >> Puerto=3D12100; >> Direccion.sin_family=3DAF_INET; >> Direccion.sin_port=3Dhtons(Puerto); >> Direccion.sin_addr.s_addr=3Dinet_addr("224.0.22.1"); >> memset(&(Direccion.sin_zero),'\0',8);=20=20=20 >>=20 >> Multic.imr_multiaddr.s_addr=3Dinet_addr("224.0.22.1"); >> Multic.imr_interface.s_addr=3Dinet_addr("138.4.32.34"); >> status=3D setsockopt(Descriptor, IPPROTO_IP, IP_ADD_MEMBERSHIP, &Multic, >> sizeof(Multic)); >> if (status<0){ >> printf("Fallo al a=C3=B1adir el grupo de Multicast, codigo %i= \n", >> errno); >> } >=20 > I'm sorry, I can't tell you why this doesn't work. Cygwin's setsockopt > function is basically just a shim between application and Winsock's > setsockopt call. It only performs special actions on a very limited > set of options, only two actually: (SOL_SOCKET, SO_REUSEADDR) and > (IPPROTO_IP, IP_TOS). I'm also quite multicast illiterate. Is it > possible that you have to use the IP_MULTICAST_IF option on Windows > before you can use IP_ADD_MEMBERSHIP?!? >=20 >=20 > Corinna >=20 > --=20 > Corinna Vinschen Please, send mails regarding Cygwin to > Cygwin Project Co-Leader cygwin AT cygwin DOT com > Red Hat >=20 > -- > 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/ >=20 >=20 >=20 --=20 View this message in context: http://www.nabble.com/Problem-Adding-Membersh= ip-Multicast-Errno-22-tp22119431p22120193.html Sent from the Cygwin list mailing list archive at Nabble.com. -- 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/