Для передачи данных протокол UDP для нескольких клиентов с#
Я хочу, чтобы обновление статуса от устройств, которые общаются по udp, происходило каждую минуту. какой метод я должен использовать. Любые предложения будут оценены по достоинству. Спасибо
Что я уже пробовал:
Я уже пробовал это сделать
foreach (IPAddress ips in iPAddresses) { Byte[] receiveBytes = { }; Byte[] dataToSend = new Byte[] { 0x8B, 0xB9, 0x00, 0x03, 0x05, 0x01, 0x09 }; IPEndPoint endPoint = new IPEndPoint(ips, 1024); EndPoint ep = (EndPoint)endPoint; Socket udpClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); try { udpClient.Connect(endPoint); udpClient.SendTo(dataToSend, ep); // Thread.Sleep(50); IPEndPoint localip = new IPEndPoint(IPAddress.Any, 1200); UdpClient receivingUdpClient = new UdpClient(localip); receiveBytes = receivingUdpClient.Receive(ref endPoint); // Thread.Sleep(50); udpClient.Close(); receivingUdpClient.Close(); receivingUdpClient.Dispose(); updateData(receiveBytes, ips); } finally { udpClient.Dispose(); } }
Проблема, которую я могу найти, заключается в этой линии-
receiveBytes = receivingUdpClient.Receive(ref endPoint);
конечная точка ref в receive() имеет только 1-й ip-адрес. он не меняется. Метод Send способен изменять ip-адрес. но не приемный метод.
Я пробовал и некоторые другие методы до этого. но именно этим я сейчас и занимаюсь