簡體   English   中英

從UDP端口接收以太網幀

[英]Receiving Ethernet frames from an UDP port

我需要偵聽多個UDP端口並將接收到的數據報作為以太網幀進行處理。 除了創建SOCK_RAW套接字以接收以太網幀,檢查我接收到的是否是UDP數據報,然后提取數據報以標識UDP端口之外,我沒有想到任何其他解決方案。

有沒有更好的辦法? 是否有某種套接字可以讓我在特定端口上接收UDP數據報,並且仍然可以訪問整個以太網幀?

我建議您使用pcap庫。 這並不難,並且可以在廣泛的系統之間移植。 您可以簡單地過濾和捕獲所需內容。

libpcap和WinPcap提供許多開源和商業網絡工具的數據包捕獲和過濾引擎,包括協議分析器(數據包嗅探器),網絡監視器,網絡入侵檢測系統,流量生成器和網絡測試器。

另一個建議是libcrafter ,它是高級的數據包創建者和解碼器。 雖然僅C ++。

不知道您的平台是否支持此功能,請嘗試:

    int s=socket(AF_INET,SOCK_PACKET,htons(ETH_P_ALL));

http://www.tldp.org/HOWTO/Ethernet-HOWTO-2.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM