Results 1 to 1 of 1
hi friends,
i try sending multicasting from one server 192.168.1.235 to 192.168.2.72 and 192.168.1.68
my server code
Code:
struct ip_mreq multi;
saddr.sin_family = PF_INET;
saddr.sin_port = htons(0); // Use the ...
- 06-24-2009 #1Just Joined!
- Join Date
- Feb 2009
- Posts
- 12
multicasing different segments of LAN
hi friends,
i try sending multicasting from one server 192.168.1.235 to 192.168.2.72 and 192.168.1.68
my server code
and my client1 : 192.168.2.72Code:struct ip_mreq multi; saddr.sin_family = PF_INET; saddr.sin_port = htons(0); // Use the first free port saddr.sin_addr.s_addr = htonl(INADDR_ANY); // bind socket to any interface status = bind(sock, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in)); multi.imr_interface.s_addr = inet_addr("192.168.2.235"); // sending via second interfce if(setsockopt(sock, IPPROTO_IP, IP_MULTICAST_IF, (char *)&multi.imr_interface.s_addr, sizeof(multi.imr_interface.s_addr)) < 0) perror("IP_MULTICAST"); saddr.sin_family = PF_INET; saddr.sin_addr.s_addr = inet_addr("226.0.1.32"); saddr.sin_port = htons(4096); status = sendto(sock, buffer, strlen(buffer), 0, (struct sockaddr *)&saddr, socklen);
and my second client client2 : 192.168.1.68Code:saddr.sin_family = PF_INET; saddr.sin_port = htons(4096); // listen on port 4096 saddr.sin_addr.s_addr = htonl(INADDR_ANY); // bind socket to any interface imreq.imr_interface.s_addr = inet_addr("192.168.2.72"); // use second interface status = setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (const void *)&imreq, sizeof(struct ip_mreq)); socklen = sizeof(struct sockaddr_in); status = recvfrom(sock, buffer, MAXBUFSIZE, 0, (struct sockaddr *)&saddr, &socklen);
Code:saddr.sin_family = PF_INET; saddr.sin_port = htons(4096); // listen on port 4096 saddr.sin_addr.s_addr = htonl(INADDR_ANY); // bind socket to any interface status = bind(sock, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in)); imreq.imr_multiaddr.s_addr = inet_addr("226.0.1.32"); imreq.imr_interface.s_addr = INADDR_ANY; // use DEFAULT interface status = setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (const void *)&imreq, sizeof(struct ip_mreq)); status = recvfrom(sock, buffer, MAXBUFSIZE, 0, (struct sockaddr *)&saddr, &socklen);
here only client1(192.168.2.72) is able to receive the message from server .. but the next segment client2(192.168.1.6
cant receive any message.. even adding to the same multicast group .. why ..?
can anybody please help me to solve this problem ... my TTY value = 32 ..
please help


Reply With Quote