繁体   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