好吧,我的问题可能看起来像是一个基本问题,但我对网络编程方面很陌生。
我想知道:
1)是否总是需要绑定套接字才能从中接收消息?我看到一个嗅探器代码(原始套接字),其中直接调用recvfrom
以及它调用的另一段代码bind
然后是接收。
2) AF_* 和 PF_* 系列有什么区别?后者与POSIX有关吗?
推荐的是哪一款呢?
不,你不需要bind()。
如果您使用 TCP 或 UDP 套接字,并且计划使用 connect() 或使用 sendto() 将数据包发送到目的地,则当您尝试连接或发送时,内核会自动将套接字绑定到合适的端口号。 。这通常是首选方式。 bind()ing 客户端套接字被认为是有害的。
AF_UNIX 套接字也是如此 - 客户端不需要绑定,通常也不应该这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)