1
首先,我对使用错误的术语表示歉意。使用UDPClient收听特定端口并获取传输数据包
我在本地网络上有一个传感器。它通过端口35333将当前温度值广播给网络上的每个人。我想创建一个C#控制台程序,该程序可不断接收来自此传感器的数据包。
这是我当前的代码:
public static UdpClient Client = new UdpClient(35333);
private static async void Start()
{
Client.BeginReceive(new AsyncCallback(recv), null);
}
private static void recv(IAsyncResult res)
{
IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
byte[] received = Client.EndReceive(res, ref RemoteIpEndPoint);
//Process codes
Client.BeginReceive(new AsyncCallback(recv), null);
}
上面的代码工作,但这里的问题:我一直收到相同的字节数组的所有时间。
...
[114][51][57][48][48][77][72][112]
[114][51][57][48][48][77][72][112]
[114][51][57][48][48][77][72][112]
[114][51][57][48][48][77][72][112]
[114][51][57][48][48][77][72][112]
...
据我所知,并再次,原谅我可怜的网络知识,我必须以某种方式发回确认该传感器,所以它开始寄来的'真实'数据。
欢迎任何提示或建议!
UDP是一个无会话广播。由于来自单个设备的UDP数据包的多个接收器的可能性,ACK是不太可能的。您应该查看设备协议文档,以及查看是否有可用的示例代码。 – JamieMeyer