C++ 如何接收从互联网站点到本地主机的流数据包



我正在尝试编写一个程序,使用 ACE 将流数据包发送到 UDP 中的某个侦听器(我正在使用我的本地主机)。这是为了测试我的程序,该程序从远程对等体接收 UDP 数据报流。到目前为止,我已经设法模拟了流,但我不知道如何使用真实网络的连接接收数据。

这是一个为本地主机发送 60 个数据包的代码示例,这对于发送者来说足够吗?

int SendDatagram() 
{ 
    const char* message = "this is a message!n"; 
    ACE_INET_Addr  sender    (27016, ACE_LOCALHOST); 
    ACE_INET_Addr  listener    (27015, ACE_LOCALHOST); 
    ACE_SOCK_DGRAM udp        (sender); 

    ssize_t sent;
    char buffer[BUFSIZ]; 
    size_t size = sizeof(buffer); 
    for (int i = 0; i < 60 ; i++)
    {
        sent = udp.send(message, ACE_OS_String::strlen(message) + 1, listener); 
        if (sent == -1) 
        { 
            ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%pn"), ACE_TEXT("send")), -1); 
        } 
        cout << "sent:     " << sent << " bytes" << endl;
    }
    udp.close(); 
    return 0; 
} 

查看 ACE 程序员指南的第 9 章(参见 http://www.amazon.com/exec/obidos/ASIN/0201699710/theaceorb-20),了解 UDP 如何与 ACE 配合使用。有关属于该部分的代码,请参阅ACE_wrappers/examples/APG/Misc_IPC

相关内容

  • 没有找到相关文章

最新更新