c语言中bind函数,bind函数 | C/C++程序员之家[通俗易懂]

c语言中bind函数,bind函数 | C/C++程序员之家[通俗易懂]bind函数作用:bind函数用于将套接字与指定端口相连头文件:和函数形式:intbind(intsockfd,conststructsockaddr*my_addr,socklen_taddrlen);返回值:成功返回0,失败返回-1说明:当调用socket函数创建套接字后,该套接字并没有与本机地址和端口等信息相连,bind函数将完成这些工作。bind函数中的sockfd参数为调…

大家好,欢迎来到IT知识分享网。

bind函数

作用:bind函数用于将套接字与指定端口相连

头文件:和

函数形式:int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);

返回值:成功返回0,失败返回-1

说明:

当调用socket函数创建套接字后,该套接字并没有与本机地址和端口等信息相连,bind函数将完成这些工作。bind函数中的sockfd参数为调用socket函数后返回的文件描述符。my_addr参数为指向sockaddr结构体的指针(该结构体中保存有端口和IP地址信息)。addlen参数为结构体sockaddr的长度。

错误信息:

EACCES:地址受到保护,用户非超级用户。

EADDRINUSE:指定的地址已经在使用。

EBADF:sockfd参数为非法的文件描述符。

EINVAL:socket已经和地址绑定。

ENOTSOCK:参数sockfd为文件描述符。

实例演练:

注意创建套接字和使用bind函数实现socket的文件描述符与地址信息绑定的过程。

[cpp]

#include

#include

#include

#include

#define MY_SOCK_PATH “/somepath”

int main(int argc, char *argv[])

{

int sfd;

struct sockaddr_un addr;

//创建通信的套接字

sfd = socket(AF_UNIX, SOCK_STREAM, 0);

if (sfd == -1) {

perror(“socket”);

exit(EXIT_FAILURE);

}

//初始化addr变量

memset(&addr, 0, sizeof(struct sockaddr_un));

addr.sun_family = AF_UNIX;

strncpy(addr.sun_path, MY_SOCK_PATH,

sizeof(addr.sun_path) – 1);

//将端口信息与套接字绑定

if (bind(sfd, (struct sockaddr *) &addr, sizeof

(struct sockaddr_un)) == -1) {

perror(“bind”);

exit(EXIT_FAILURE);

}

}

[/cpp]

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25267.html

(0)
上一篇 2023-07-30 12:00
下一篇 2023-07-31 19:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信