2015-02-17 2 views
0

Я пытаюсь установить соединение между 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 показывает, что данные были отправлены.

любая помощь будет назначена.

+0

Почему в вашем коде есть соединение? Udp не является ориентированным на соединение, поэтому соединение обычно не выполняется. –

+0

Я также попытался отправить без подключения, как в следующем, но таком же результате: Dim udc As New UdpClient (remoteEP.Address.ToString, 20510) udc.Send (sendBytes, sendBytes.Length) udc.Close() –

ответ

1

Я сам решил свою проблему. на самом деле ничего не было в коде. Фактически я подключал устройство, используя перенаправленный порт. это мешало внутреннему трафику от устройства к моей системе. Присвоение статического ip прямо к моей системе решило проблему.

Смежные вопросы