bind函数只能用于还没有连接的socket,即只能在connect或者listen之前调用
一个socket只能调用一次bind
所以socket一旦bind就不能在改变了.
bind函数可以用于TCP和UDP
一个socket的名字由地址族,主机地址,标识应用程序的端口号组成
socket函数指定一个地址族,bind函数则指定地址跟端口号
传入的sockaddr中的sin_addr用于指定bind的地址,选择ADDR_ANY让socket bind到任何本机地址
这适合于多个网卡,或者多个ip地址的主机
传入的sockaddr中的port指定bind的端口,如果port为零,则系统会随机赋予1024到5000的端口号.
不推荐客户端使用具体的端口号进行bind,因为可能会跟其它应用程序冲突
对于具体的socket,当bind执行成功后还可以通过getsockname得到与socket相关联的地址
但是如果bind时使用的地址是ADDR_ANY,则只能在socket接收到连接时,才能获得该地址
![]()
bind函数详解
本文详细介绍了bind函数的使用方法及其在TCP和UDP中的应用。强调了bind函数只能在connect或listen之前调用,并且每个socket只能调用一次bind。此外还讨论了如何指定地址和端口,包括使用ADDR_ANY绑定到任何本地地址的情况。
362

被折叠的 条评论
为什么被折叠?



