bind 函数可以帮助你指定一个套接字使用的端口
当你使用socket 函数获得一个套接字描述符后,你也许需要将socket绑定上一个你的机器的端口
当你需要进行端口listen操作,等待接收一个连入请求的时候,一般需要这一步。
与客户端的套接字关联的地址没有太大意义,当你只是想连接一台服务器,也就是进行connect操作的时候,这一步并不是必须的。
int bind(int sockfd, struct sockaddr* my_addr, int addrlen);
sockfd:由socket函数返回的套接字描述符
my_addr : 是一个指向 sockaddr 的一个指针,包含你的地址信息,名称,端口和ip地址。
addrlen : sizeof(my_addr)
限制:
在进程所运行的机器上,指定的地址必须有效,不能指定一个其他机器的地址
地址必须和创建套接字时的地址族所支持的格式匹配
端口号不能小于1024,除非改进程具有相应的特权
如果ip指定为 INADDR_ANY,套接字端点可以被绑定到所有的系统网络端口。如果调用connect 或者 listen 但是没有绑定一个套接字,系统会选择一个地址,并将其绑定到套接字。
返回值:
出错的时候返回-1