sender.cpp
#include "ace/SOCK_Dgram_Mcast.h"
#include "ace/OS.h"
#include "ace/Log_Msg.h"
#define DEFAULT_MULTICAST_ADDR "224.9.9.2"
#define TIMEOUT 5
int main(int argc, char*argv[])
{
ACE_INET_Addr multicast_addr_(2000,DEFAULT_MULTICAST_ADDR);
ACE_INET_Addr local_addr_((u_short)0);
ACE_SOCK_Dgram dgram_(local_addr_);
int mcast_info;
mcast_info= htons (1000);
if(dgram_.send(&mcast_info, sizeof (mcast_info), multicast_addr_)==-1)
{
ACE_DEBUG((LM_ERROR,"Send to Multicast group failed /n"));
exit(-1);
}
else{
ACE_DEBUG((LM_DEBUG,"%s; Sent multicast to group. Number sent is %d./n",__FILE__,mcast_info));
ACE_DEBUG((LM_DEBUG,"Send to Multicast group successful /n"));
}
return 0;
}
///
rec.cpp
#include "ace/SOCK_Dgram_Mcast.h"
#include "ace/OS.h"
#include "ace/Log_Msg.h"
#define DEFAULT_MULTICAST_ADDR "224.9.9.2"
#define TIMEOUT 5
int main(int argc, char*argv[])
{
ACE_INET_Addr mcast_addr_(2000,DEFAULT_MULTICAST_ADDR);
ACE_INET_Addr remote_addr_((u_short)0);
ACE_SOCK_Dgram_Mcast mcast_dgram_;
int mcast_info;
if (mcast_dgram_.subscribe (mcast_addr_) == -1)
{
ACE_DEBUG((LM_DEBUG,"Error in subscribing to Multicast address /n"));
exit(-1);
}
while(mcast_dgram_.recv(&mcast_info,sizeof (mcast_info),remote_addr_)!=-1)
{
ACE_DEBUG((LM_DEBUG, "(%P|%t) Received multicast from %s:%d./n",
remote_addr_.get_host_name(), remote_addr_.get_port_number()));
ACE_DEBUG((LM_DEBUG,"Successfully received %d/n", mcast_info));
}
if(mcast_dgram_.unsubscribe()==-1)
ACE_DEBUG((LM_ERROR,"Error in unsubscribing from Mcast group/n"));
return 0;
}