bind() 方法

bind() 方法是在网络编程中使用的一个系统调用,用于将一个套接字绑定到一个本地地址上,以便其他计算机可以通过该地址访问该套接字。通常在使用 socket() 函数创建套接字之后,需要使用 bind() 方法将其绑定到一个特定的本地地址上。

bind() 方法的原型如下:

#include <sys/types.h>
#include <sys/socket.h>

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

其中,sockfd 参数是 socket() 函数返回的套接字文件描述符。addr 参数是一个指向 struct sockaddr 类型结构体的指针,用于指定要绑定的本地地址。addrlen 参数是一个 socklen_t 类型的整数,表示 addr 结构体的大小。

addr 结构体可以是以下任意一种类型:

  • struct sockaddr_in:用于 IPv4 地址。
  • struct sockaddr_in6:用于 IPv6 地址。
  • struct sockaddr_un:用于 Unix 域套接字地址。

bind() 方法返回 0 表示绑定成功,返回 -1 表示绑定失败,此时可以通过 errno 变量获取错误码。如果没有指定要绑定的端口号,则操作系统将自动选择一个未使用的端口号进行绑定。

在绑定套接字之前,通常需要先设置一些套接字选项,例如设置套接字为非阻塞模式、设置 SO_REUSEADDR 选项等等。

参考: https://linux.die.net/man/2/bind

powered by Gitbook© 2023 编外计划 | 最后修改: 2023-11-24 03:36:58

results matching ""

    No results matching ""