使用 Socket 或 UdpClient 进行多播有什么功能上的区别吗?

Is there any functional difference in using Socket or UdpClient for multicasting?

我正在熟悉多播等。

使用了 2 个主要示例:

  1. SocketBind()

  2. 结合使用
  3. UDPClient.JoinMulticastNetwork()

一个指定 LeaveMulticastGroup and another binding and Joining with no LeaveMulticastGroup()

Multicasting的2种方式有什么区别,哪个更好用?

区别在于使用 UdpClient class and managing your multicast on a lower level, using sockets and multicast option 之间的抽象级别。如果您使用 UdpClient,那么您无需担心套接字和多播选项,因为这是在 UdpClient class 中完成的。如果你想更好地控制正在发生的事情,那么你可以使用带有套接字和多播选项的更多 low-level 方法。

使用 UdpClient.

可能更容易实现基本的多播功能

作为参考,您可以查看以下两个教程(第一个使用UdpClient并且更多high-level,而第二个使用套接字和多播选项):

  1. UDP Multicasting Tutorial
  2. IP Multicasting in C#