Прежде всего, я прошу прощения за неправильное использование терминологии.Слушайте конкретный порт с UDPClient & Get Transmitted Packets
У меня есть датчик в моей локальной сети. Он передает текущие значения температуры всем в сети на порту 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 является sessionless вещания. С потенциалом для нескольких приемников UDP-пакета с этого единственного устройства ACK маловероятен. Вы должны просмотреть документы протокола устройства, а также посмотреть, есть ли пример кода. – JamieMeyer