winsock2 bind函数的功能

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接收到连接时,才能获得该地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值