peakzhang 发表于 2007-12-18 23:56:37

关于udp组播问题

下面是udp组播的实例代码.

组播都要设置组播地址和端口。他在那里设置的。

另外,能否提供组播的接收代码。

Thanks.

#include "ace/OS_NS_string.h"
#include "ace/Log_Msg.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Dgram_Mcast.h"

int send_multicast (const ACE_INET_Addr &mcast_addr)
{
const char *message = "this is the message!\n";
ACE_SOCK_Dgram_Mcast udp;
if (-1 == udp.join (mcast_addr))
    ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"),
                     ACE_TEXT ("join")), -1);

ssize_t sent = udp.send (message,
                           ACE_OS::strlen (message) + 1);
udp.close ();
if (sent == -1)
    ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"),
                     ACE_TEXT ("send")), -1);
return 0;
}
// Listing 1

int ACE_TMAIN (int, ACE_TCHAR *[])
{
ACE_INET_Addr nop;
send_multicast (nop);
return 0;
}

peakzhang 发表于 2007-12-18 23:56:45

mcast_addr 就是你要设置地址的地方

调用udp.recv()接收数据,但不能像你那样用局部变量,除非你也在那个函数中接收
页: [1]
查看完整版本: 关于udp组播问题