0

我的任务是消除

<app> uses obsolete (PF_INET,SOCK_PACKET)

来自用户空间客户端的警告。如果这种类型的使用已过时;这项任务的正确、类似的替代品是什么?

编辑:这里有误导性信息。

4

2 回答 2

2

检查man 7 packetman 7 ip获取更多信息,但看起来您需要的是

socket(PF_PACKET, SOCK_RAW, <protocol>)

"For compatibility with Linux 2.0, the obsolete socket(PF_INET,
SOCK_RAW, protocol) syntax is still supported to open a
packet(7) socket.  This is deprecated and should be replaced by
socket(PF_PACKET, SOCK_RAW, protocol) instead.  The main
difference is the new sockaddr_ll address structure for generic
link layer information instead of sockaddr_pkt." - ip(7)

虽然我不知道可能需要进行哪些其他更改。

于 2011-05-19T14:59:35.097 回答
0

问题是调用 socket(AF_INET, SOCK_PACKET, htons(0x0806)) 的库函数,而不是应用程序本身。

于 2011-05-19T15:58:01.147 回答