ACE-IPC(MULTICAST)

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值