CybeX
CybeX

Reputation: 2396

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

I am familiarizing myself with Multicasting and such.

There are 2 primary examples used:

  1. Using Socket with Bind()

  2. UDPClient.JoinMulticastNetwork()

One specifiying a LeaveMulticastGroup and another binding and Joining with no LeaveMulticastGroup()

What is the difference between the 2 methods of Multicasting, which is preferable to use?

Upvotes: 15

Views: 3926

Answers (1)

Igor Ševo
Igor Ševo

Reputation: 5515

The difference is in the level of abstraction between using a UdpClient class and managing your multicast on a lower level, using sockets and multicast option. If you use a UdpClient, then you don't need to worry about sockets and multicast options, since that is done under the hood in the UdpClient class. If you want more control over what is happening, than you can use a more low-level approach with socket and multicast option.

It is probably easier to implement basic multicasting functionality by using a UdpClient.

For reference, you can check the following two tutorials (the first uses a UdpClient and is more high-level, while the second uses sockets and multicast option):

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

Upvotes: 12

Related Questions