您的位置:首页 > 其它

man bind

2016-03-29 17:22 162 查看
名称

  bind - 给套结字绑定一个地址

摘要

#include <sys/types.h>    /* for portable consideration */
#include <sys/socket.h>

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


描述

  用socket()创建的套结字存在于其自己的地址空间(address family)中,但是没有具体的地址与其绑定,而bind就是将addr所表示的地址绑定到sockfd所表示的套结字上。addrlen以字节为单位指定了addr所表示地址结构的大小。

  地址绑定的规则在不同的地址族(address family)变化很大,可以通过查询相应的条目获得更详细的信息。对于AF_INET, man 7 ip;对于AF_INET6, man 7 ipv6; 对于AF_UNIX, man 7 unix;对于APPLETALK,man 7 ddp;对于AF_PACKET, man 7 packet; 对于AF_X25, man 7 x25;对于AF_NETLINK, man 7 netlink.

  传递给addr参数的实际的地址结构取决于地址族(address family),而sockaddr地址结构定义如下:

struct sockaddr {
sa_family_t sa_family;
char sa_data[14];
}


其实这个结构体的唯一目的是映射传递给addr的地址结构指针,以防止编译警告。

例子

   1,bind()用于网络通信套结字的例子见“man 2 getaddrinfo”

   2,bind()用于AF_UNIX域SOCK_STREAM类型套结字的例子见"man 2 bind"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: