簡體   English   中英

將數據從原始套接字發送到udp或tcp套接字

[英]send data from raw socket to udp or tcp socket

我正在嘗試學習有關Linux中套接字的知識。 我有一個小的開發板,例如樹莓派,內部運行Linux。 不幸的是,它沒有以太網或USB端口。

我創建了一個虛擬網絡接口,並將其用作默認網關。 我編寫了一個使用原始套接字在虛擬接口上偵聽的小程序(然后將所有數據包通過串行線路發送到計算機,在該程序中,該數據包將這些數據包發送到互聯網,並收到答復並將其發送回)。

我的問題是,當我嘗試Ping一些公共IP地址時,我可以在tcpdump中看到計算機和開發板上的ICMP請求和響應。 但是ping似乎什么也沒收到。

我嘗試使用回送接口而不是虛擬接口,但是在這種情況下,ping會循環播放,並且設備在一段時間內變得不負責任:)。 但是ping確實收到了ICMP響應,並且TCP連接無效。

我也嘗試使用2個虛擬接口並創建網橋。

如有任何建議,我將不勝感激。

我認為您可以在本地計算機上下載並測試一些外部程序,例如從github- https://github.com/hoxnox/rawsock_recv_example在此示例中,您會發現cMake項目可以構建簡單的UDP回顯服務器,而應用程序可以創建兩個原始文件UDP套接字。

作為良好的文檔參考,您可以使用本文-http: //sock-raw.org/papers/sock_raw

暫無
暫無

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

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