C# UDP接收数据
时间: 2024-08-14 17:01:22 浏览: 63
在C#中,UDP (User Datagram Protocol) 是一种无连接的数据报协议,用于在互联网上进行快速、不可靠的数据传输。如果你需要在C#中接收UDP数据,你需要做以下几个步骤:
1. 创建`UdpClient`实例:首先,通过`System.Net.Sockets`命名空间下的`UdpClient`类创建一个新的实例。
```csharp
using System.Net;
using System.Net.Sockets;
UdpClient udpClient = new UdpClient();
```
2. 设置端口:指定你要监听的端口号,这个端口将是其他设备发送数据到你的服务器的通道。
```csharp
int port = 8080; // 或者你喜欢的任意端口
udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
udpClient.Client.Bind(new IPEndPoint(IPAddress.Any, port));
```
3. 接收数据:使用`ReceiveAsync`方法异步地等待数据包的到来。它会返回一个包含接收到的消息和发送方信息的`IPEndPoint`和`byte[]`数组。
```csharp
async Task ListenForMessages()
{
while (true)
{
var receivedData = await udpClient.ReceiveAsync();
byte[] data = receivedData.Buffer;
string message = Encoding.UTF8.GetString(data); // 假设数据是以UTF8编码的字符串
Console.WriteLine($"Received message from {receivedData.RemoteEndPoint}: {message}");
}
}
```
4. 结束接收:在不需要接收数据时,记得关闭`UdpClient`。
```csharp
// 在适当的时候停止接收
udpClient.Close();
```
阅读全文