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