#bind

把本地协议地址赋予给一个套接字, 对于网际网协议,协议地址是32的IPV4地址或128位的IPV6地址与16位的TCP或者UDP端口号的组合

头文件

#include < sys/socket.h >

函数原型

int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen)

函数说明

bind()用来设置给参数sockfd的socket一个名称。此名称由参数my_addr指向一sockaddr结构,对于不同的socket domain定义了一个通用的数据结构

struct sockaddr
{
unsigned short int sa_family;
char sa_data[14];
};

sa_family 为调用socket()时的domain参数,即AF_xxxx值。 sa_data 最多使用14个字符长度。

绑定地址和端口的情况:

IP地址 端口 结果
通配地址 0 内核选择IP地址和端口
通配地址 非0 内核选择IP地址,进程指定端口
本地IP地址 0 进程指定IP地址,内核选择端口
本地IP地址 非0 进程指定IP地址和端口

注意: 如果指定IP地址为通配地址,那么内核将等到套接字已连接(TCP)或已在套接字上发出数据报(UDP)时才选择一个本地IP地址。

文档更新时间: 2021-02-26 11:56   作者:周国强