我有一项任务要消除
<app> uses obsolete (PF_INET,SOCK_PACKET)
来自用户空间客户端的警告。 如果这种用途已经过时;什么是正确的,类似的替代这项任务?
编辑:这里有误导性的信息。
答案 0 :(得分:2)
检查man 7 packet
和man 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)
虽然我不知道可能需要进行哪些其他更改。
答案 1 :(得分:0)
问题是库函数调用套接字(AF_INET,SOCK_PACKET,htons(0x0806)),而不是应用程序本身。