마이크로 컨트롤러에서 UDP 패킷을 수신 할 수 없습니다.

Sushant

저는 현재 이더넷을 통해 UDP 통신 PC <-> ARM LM3S6965 (Luminary)에서 작업하고 있습니다. PC에는 UDP 서버 / 클라이언트를 시뮬레이션하는 VB.net 애플리케이션이 있습니다.

패킷이 PC에서 ARM LM3S6965로 전송되면 패킷이 오류없이 수신되지만 ARM LM3S6965가 UDP 패킷을 PC로 다시 전송하면 패킷이 어딘가에서 손실됩니다 (애플리케이션에서 수신하지 않음).

이상한 점은 WireShark가 PC로 들어오는 이러한 패킷을 캡처하고 유효한 것으로 보인다는 것입니다.

Windows에서 방화벽을 꺼도 도움이되지 않았습니다. 이 주제가이 포럼에 잘못되었을 수 있다는 것을 알고 있지만 WireShark가 이러한 패킷을 캡처하는 이유를 설명 할 수있는 사람이 있지만 내 응용 프로그램은 그렇지 않습니다. ARM LM3S6965 (192.168.0.100), PC (192.168.0.116), 송수신은 포트 번호 3040을 통해 이루어지며, ARM LM3S6965 마이크로 컨트롤러에서 수신 한 VB.Net 애플리케이션에서 브로드 캐스트 메시지를 보내고 있습니다.

다음은 VB.net 코드입니다.

Public Const mnPort As Int16 = 3040                             'Port number to send/recieve data on
Public Const msBroadcastAddress As String = "255.255.255.255"   'Sends data to all LOCAL listening clients, to send data over WAN you'll need to enter a public (external) IP address of the other client
Public udpReceivingClient As UdpClient                          'Client for handling incoming data
Public udpSendingClient As UdpClient                            'Client for sending data
Public receivingThread As Thread                                'Create a separate thread to listen for incoming data, helps to prevent the form from freezing up
Public mbiClosing As Boolean = False                            'Used to close clients if form is closing


Public Sub InitializeSender()
    udpSendingClient = New UdpClient(msBroadcastAddress, mnPort)
    udpSendingClient.EnableBroadcast = True
End Sub

Public Sub InitializeReceiver()
    udpReceivingClient = New UdpClient(mnPort)
    'Dim start As ThreadStart = New ThreadStart(AddressOf MT_Receiver)
    'receivingThread = New Thread(start)
    'receivingThread.IsBackground = True
    'receivingThread.Start()
End Sub

Public Sub MT_Send_UDP(ByVal lbTxBuffer() As Byte)

    Try
        udpSendingClient.Send(lbTxBuffer, lbTxBuffer.Length)
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try

    Try
        udpReceivingClient.BeginReceive(AddressOf MT_RX_Callback, Nothing)
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub

Public Sub MT_RX_Callback(ByVal IR As IAsyncResult)
    Dim endPoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 3040)
    Dim lbData() As Byte
    Dim llRet As UInt16
    If mbiClosing = False Then
        llRet = udpReceivingClient.Available
        lbData = udpReceivingClient.EndReceive(IR, endPoint)

        If llRet > 0 Then
            MT_Validate_Msg(lbData)
        End If

        udpReceivingClient.BeginReceive(AddressOf MT_RX_Callback, Nothing)
    End If
End Sub

Private Sub frmSearchUDP_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    mbiClosing = True

    udpReceivingClient.Close()
    udpSendingClient.Close()
    frmMain.Timer.Enabled = True
End Sub

Private Sub frmSearchUDP_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    InitializeSender()
    InitializeReceiver()

End Sub

더 많은 댓글이지만 너무 깁니다 ...

No196 : 42.430628
From 192.168.0.168-> 255.255.255.255 (PC에서 하드웨어로)
UDP ... 소스 포트 : 63162 (63162)
대상 포트 : tomato-springs (3040)

이것은보기에 좋고 하드웨어가 응답을 보내기 때문에 분명히 작동합니다.

No197 : 42.431017
From 192.168.0.100-> 255.255.255.255 (하드웨어에서 PC로)
소스 포트 : 토마토 스프링 (3040)
대상 포트 : 63162 (63162)

PC에서이 패킷을 받아야하는 이유는 무엇입니까?
대상 포트는 63162이지만 포트 3040을 수신합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

erlang udp 서버가 수신 패킷을 수신 할 수 없습니다.

scapy sniffed udp 패킷을 다른 호스트로 보낸 후 수신할 수 없습니다.

UDP 패킷을 수신할 수 없음

WPF 응용 프로그램에서 UDP 패킷을 수신할 수 없음

Android 폰에서 PC의 UDP 패킷을 수신할 수 없음

JAVA UDP 서버가 패킷을 수신 할 수 없음

Python에서 UDP 패킷을 수신 할 수없는 이유는 무엇입니까?

UDP 패킷을 여러 개의 작은 패킷으로 분할 할 수 있습니까?

wireshark가 할 수있는 방식으로 서브 네트워크에서 UDP 브로드 캐스트 패킷을 수신합니다.

컨트롤러가 JQuery.ajax에서 JSON을 수신 할 수 없습니다.

Java 서버에서 Android 클라이언트로 : TCP 패킷을 수신 할 수 없습니다.

Laravel이 컨트롤러에서 모델을로드 할 수 없습니다.

WiFi 네트워크에서 jpcap을 사용하여 패킷을 수신 할 수 없습니다.

마스터 뷰 컨트롤러에서 행을 삭제할 수 없습니다.

Ruby 응용 프로그램이 다른 호스트에서 UDP 패킷을 수신하지 않습니다.

컨트롤러에서 codeigniter의 양식을로드 할 수 없습니다.

각도에서 컨트롤러 파일을로드 할 수 없습니다.

컨트롤러에서 .blade.php로 값을 전달할 수 없습니다.

컨트롤러 페이지에서 값을 검색 할 수 없습니다.

Boost ASIO로 UDP 패킷을 두 번 이상 수신할 수 없는 이유는 무엇입니까?

지시문에서 컨트롤러로 통신 할 수 없습니다. AngularJS 1.6

컨트롤러에서 HTML을 반환 할 수 없습니다.

Wireshark가 실행되지 않으면 C에서 UDP 패킷을 스니핑 할 수 없습니다.

OpenCV Gstreamer에서 gstreamer UDP 스트림을 수신 할 수 없습니다.

UDP 서버에서 패킷을 수신 할 때 별도의 스레드에서 수신해야하는 이유는 무엇입니까?

rsyslog는 ddwrt syslog 패킷을 수신 할 때 UDP 포트 53 데이터 그램을 많이 생성하는 것 같습니다.

C 언어로 작성된 UDP 클라이언트는 패킷을 수신하지 않습니다.

원시 소켓으로 패킷을 수신 할 수 없습니다.

Moto G는 WIFI 네트워크를 통해 UDP 패킷을 수신하지 않습니다.

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관