C# UDP组播工具类
时间: 2023-08-02 22:42:26 浏览: 116
以下是一个简单的 C# UDP 组播工具类的示例代码:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class UdpMulticast
{
private UdpClient udpClient;
private IPAddress multicastAddress;
private int port;
public UdpMulticast(string multicastAddressString, int port)
{
this.multicastAddress = IPAddress.Parse(multicastAddressString);
this.port = port;
this.udpClient = new UdpClient();
this.udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
this.udpClient.JoinMulticastGroup(this.multicastAddress);
}
public void Send(string message)
{
byte[] bytes = Encoding.UTF8.GetBytes(message);
this.udpClient.Send(bytes, bytes.Length, new IPEndPoint(this.multicastAddress, this.port));
}
public string Receive()
{
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
byte[] bytes = this.udpClient.Receive(ref remoteEndPoint);
return Encoding.UTF8.GetString(bytes);
}
public void Close()
{
this.udpClient.Close();
}
}
```
使用示例:
```csharp
UdpMulticast udpMulticast = new UdpMulticast("239.0.0.1", 1234);
udpMulticast.Send("Hello, World!");
string receivedMessage = udpMulticast.Receive();
Console.WriteLine("Received message: " + receivedMessage);
udpMulticast.Close();
```
注意:在使用组播时,需要确保网络路由器和交换机正确配置,以确保组播数据包能够正确传递到每个接收者。