Я пытаюсь установить соединение между calamp lmu (gps tracking device) и моим сервером. Я использую следующий код для отправки и получения данных. я использую Timer1 для приема данных от устройствакак отправить данные на удаленное устройство через udp?
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Try
Dim receiveBytes As [Byte]() = receivingUdpClient.Receive(remoteEP)
Dim returnData As String = BitConverter.ToString(receiveBytes)
txtLog.Text &= returnData.ToString & vbCrLf
Dim rep As New IPEndPoint(remoteEP.Address, C_DEVICE_LISTNING_PORT)
sktSocket = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
sktSocket.Connect(remoteEP.Address, 20510)
sktSocket.SendTimeout = 100
'Dim udc As New UdpClient
'udc.Send(sendBytes, sendBytes.Length, rep)
'receivingUdpClient.Client.Send(sendBytes)
Catch ex As Exception
End Try
End Sub
после двух переменных уровня класса:
Dim remoteEP As New IPEndPoint(IPAddress.Any, 0)
Dim sktSocket As Socket
Я использую следующий код для отправки данных на устройство:
Private Sub butSend_Click(sender As Object, e As EventArgs) Handles butSend.Click
Dim sendBytes() As Byte = Encoding.ASCII.GetBytes(txtCommand.Text)
sktSocket.Send(sendBytes)
End Sub
мой код для получения данных работает нормально. когда устройство отправляет таймер данных1, он отображает его в текстовом поле. Но когда я отправляю данные на ip-адрес, возвращенный получателемUdpClient.Receive, он не доходит до устройства. однако wirehark показывает, что данные были отправлены.
любая помощь будет назначена.
Почему в вашем коде есть соединение? Udp не является ориентированным на соединение, поэтому соединение обычно не выполняется. –
Я также попытался отправить без подключения, как в следующем, но таком же результате: Dim udc As New UdpClient (remoteEP.Address.ToString, 20510) udc.Send (sendBytes, sendBytes.Length) udc.Close() –