创建套接字时不带名称。只有在套接字绑定到地址之后,远程进程才能引用此套接字。用于通信的进程通过地址连接。在 Internet 系列中,连接由本地和远程地址以及本地和远程端口组成。 不能存在重复排序组,如 protocol、local address、local port、foreign address、foreign port。 在大多数系列中,连接必须唯一。
使用 bind(3SOCKET) 接口,进程可以指定套接字的本地地址。此接口组成 local address、local port 组。connect(3SOCKET) 和 accept(3SOCKET) 通过添加地址元组的远程部分来完成套接字的关联。bind(3SOCKET) 调用的用法如下:
bind (s, name, namelen);
套接字句柄为 s。绑定名称是由支持协议解释的字节字符串。Internet 系列名称包含 Internet 地址和端口号。
#include <sys/types.h> #include <netinet/in.h> ... struct sockaddr_in6 sin6; ... s = socket(AF_INET6, SOCK_STREAM, 0); bzero (&sin6, sizeof (sin6)); sin6.sin6_family = AF_INET6; sin6.sin6_addr.s6_addr = in6addr_arg; sin6.sin6_port = htons(MYPORT); bind(s, (struct sockaddr *) &sin6, sizeof sin6);
地址 sin6 的内容在讨论 Internet 地址绑定的地址绑定中介绍。