在C#中,使用UdpClient来同时接收来自不同设备发送到本地电脑同一端口的数据
时间: 2024-10-27 13:11:00 浏览: 28
在C#中,`UdpClient`是一个用于处理用户数据报(UDP)套接字的类,它允许你在网络上收发数据包。如果你想让一个`UdpClient`实例同时接收来自不同设备发送到本地计算机同一端口(比如5000端口)的数据,你需要按照以下步骤操作:
1. 创建`UdpClient`对象:
```csharp
UdpClient udpClient = new UdpClient(5000);
```
这里,5000是监听的端口号。
2. 开始接收数据:
```csharp
IPEndPoint remoteEndPoint = null;
while (true)
{
byte[] data = udpClient.Receive(ref remoteEndPoint); // 接收数据包
string receivedMessage = Encoding.ASCII.GetString(data); // 解码收到的数据
Console.WriteLine($"Received from {remoteEndPoint}: {receivedMessage}");
}
```
这个循环会持续运行,直到程序停止,不断从指定端口接收数据,并打印出来源IP和消息内容。
3. 处理并发连接:
由于UDP是无连接的,每个接收到的数据包都会被视为一个新的连接。如果你需要跟踪每个源,可以创建一个`Dictionary<IPAddress, List<byte[]>>`来存储数据,将每个新的连接信息关联起来。
4. 关闭连接时记得释放资源:
当不再需要接收数据时,别忘了关闭`UdpClient`:
```csharp
udpClient.Close();
```
阅读全文