【发布时间】:2011-12-26 14:41:41
【问题描述】:
嗯,我的问题可能看起来像一个基本的东西,但我是网络编程方面的新手。 我想知道:
1) 是否总是需要绑定套接字才能从中接收消息?我看到一个嗅探器代码(原始套接字),其中一个直接调用recvfrom,另一段代码调用bind,然后是接收。
2) AF_* 和 PF_* 系列有什么区别?后者与POSIX有关吗? 哪个是推荐的?
【问题讨论】:
-
1) 不,UDP 接收的绑定是可选的。
-
stackoverflow.com/questions/2549461/…。 IIRC,P 代表协议(家族),而 A 代表地址。
-
@Kerrek SB:但是我所指的嗅探器代码也捕获了来自其他协议的数据包,但它仍然没有被调用
bind -
@Aif:协议族没问题,但地址类型是什么?
-
@kingsmasher1:AF_INET、AF_INET6、AF_UNIX 等等...
man socket了解详情。