Передать 4 байта по протоколу UDP - Visual Basic .NET
Формулировка задачи:
Юпатов Дмитрий
, Как упростить Ваш пример UDPchat? Задача: сервер выдаёт в цикле таймера для всеобщего пользования постоянно изменяющийся массив, например, из 4 байтов. Пусть это будет время в секундах от ноля часов. Клиент (-ты) тоже в цикле таймера читают эту информацию и отображают на своих формах.Решение задачи: «Передать 4 байта по протоколу UDP»
textual
Листинг программы
'Цель udp сервера является обнаружение входящих данных, отправляемых от udp клиента. 'Ключевой особенностью сервера является многопоточность (т. е. они могут обрабатывать сотни одновременных запросов). 'В этом случае, наш сервер должен иметь по крайней мере два потока: 'один занимается incomming данных udp, и главный поток выполнения может продолжать поддерживать пользовательский интерфейс. Public Class Form1 Dim receiveBytes As Byte() Dim sRemoteIp As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'организуем и стартуем отдельный поток для UDP данных Dim thdUDPServer = New Thread(New ThreadStart(AddressOf serverThread)) thdUDPServer.Start() End Sub Public Sub serverThread() 'обработка потока UDP-данных Dim udpClient As New Net.Sockets.UdpClient(8080) While True Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0) receiveBytes = udpClient.Receive(RemoteIpEndPoint) sRemoteIp = RemoteIpEndPoint.Address.ToString() End While End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Try Dim returnData As String = System.Text.Encoding.ASCII.GetString(receiveBytes) lbConnections.Items.Add(sRemoteIp + ":" + returnData) Catch ex As Exception End Try End Sub End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д