使用raw socket发送报文比接收报文要复杂一些,因为需要在程序中构建数据链路层、网络层和传输层的报头,本文以发送UDP报文为例说明在使用raw socket时如何构建数据链路层、网络层和传输层的报头并发送报文,文中给出了完整的源程序;本文假定读者掌握了基本的IPv4下的socket编程。
sock_raw = socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW);
if (sock_raw == -1)printf("error in socket");
struct ethhdr {unsigned char h_dest[ETH_ALEN]; /* destination eth addr */unsigned char h_source[ETH_ALEN]; /*
本文发布于:2024-02-04 12:01:38,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170706729555380.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |