【问题标题】:Server Multicast - MFC CSocket - C++ - How to?服务器多播 - MFC CSocket - C++ - 如何?
【发布时间】:2013-12-20 23:43:29
【问题描述】:

我正在使用一些协议创建自己的服务器:TCP-PULL ok,TCP-PUSH ok,UDP-PULL ok(但我不能同时为两个客户端服务!),UDP-PUSH ok(相同问题)。 现在,我需要创建我的最后一个协议:Multicast-PUSH,但我不明白它是如何工作的,我真的不知道如何用 C++ 对其进行编码。我读过关于加入一个组,并且在多播中没有连接,所以即使有人连接,也会发送字节。

我正在使用 MFC 库和 CSockets 编写 C++ 代码。

有人可以帮忙吗?

谢谢!!

【问题讨论】:

    标签: c++ sockets mfc multicast


    【解决方案1】:

    考虑一个示例,其中一个系统需要将相同的信息发送到多个系统。如何最好地做到这一点?显而易见的方法是为每个目标系统建立一个套接字“连接”。当数据准备好发送时,发送者遍历每个“连接”,将数据传输到目标系统。每次发送消息时都必须发生此迭代过程,并且它必须是健壮的,以便如果一个系统的传输失败,其余系统也不会失败。但问题实际上比这更糟糕,因为通常所有系统都在多播交换中传输数据。这意味着每个系统都必须与每个希望参与的系统建立“连接”。

    这就是多播的用武之地。在多播中,发送方一次将数据发送到称为多播组的专用 IP 地址和端口。从那里,网络设备(例如路由器)负责将数据转发到多播组中的其他系统。为了实现这一点,所有希望参与多播交换的系统都必须“加入”多播组,这发生在套接字初始化期间,用于简单地通知网络设备系统希望参与多播交换。有一个用于多播的特殊 IPv4 地址范围 - 224.0.0.0 到 239.255.255.255。您必须使用此范围内的 IP 地址和您选择的端口号才能使多播正常工作。

    查看 CodeProject 中的 Multicast Wrapper Class,了解如何在 MFC 中执行此操作的示例。

    【讨论】:

    • 早上好,马特!谢谢,我成功了,但我还有一个小问题:我经常失去连接,我不知道为什么
    猜你喜欢
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 2021-10-15
    • 2012-07-18
    相关资源
    最近更新 更多