gpt4 book ai didi

c - 如何在Linux中使用SOCK_RAW接收IPv4数据包?

转载 作者:行者123 更新时间:2023-11-30 16:09:39 30 4
gpt4 key购买 nike

如何在 Linux 中接收网络层(OSI 第 3 层)数据包?更具体地说,IPv4 数据包与传输层协议(protocol)(UDP、TCP 等)无关。最好是在没有库的 C 语言中。

使用socket(AF_INET, SOCK_RAW, IPPROTO_RAW),我只能发送 IPv4 数据包;收不到。

最佳答案

您是否尝试使用套接字库中的recvfrom?就像这个例子一样:

sock_raw = socket(AF_INET , SOCK_RAW , protocol);
while(1)
{
data_size = recvfrom(sock_raw , buffer , 65536 , 0 , &addr , &addr_size);
}

关于c - 如何在Linux中使用SOCK_RAW接收IPv4数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59094460/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com