C 语言中的 bind 函数是指将一个套接字和特定的 IP 地址和端口号绑定在一起。它通常在服务器端程序中使用,用来指定服务器的地址和端口号,以便客户端程序能够连接到服务器。
语法:
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
其中,sockfd 是指要绑定的套接字的文件描述符;addr 是一个指向 sockaddr 结构体的指针,其中包含了要绑定的 IP 地址和端口号;addrlen 是 sockaddr 结构体的大小。
返回值:
- 成功时返回 0;
- 失败时返回 -1,并设置 errno。
示例代码:
``` #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h>
#define PORT 12345
int main(void) { int sockfd; struct sockaddr_in server_addr;
// 创建套接字 sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd == -1) { perror("socket"); exit(EXIT_FAILURE); }
// 设置服务器地址 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = htonl(INADDR_ANY); server_addr.sin_port = htons(PORT);
// 绑定套接字 if (bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { perror("bind"); close(sockfd); exit(EXIT_FAILURE); }
// 其他代码
close