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 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 client1 : 192.168.2.72

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

 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);
and my second client client2 : 192.168.1.68

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