国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python常见问题 > python bind是什么意思

python bind是什么意思

头像

爱喝马黛茶的安东尼

2019-11-19 15:51:314530浏览 · 0收藏 · 0评论

bind()函数介绍

在建立套接字文件描述符成功后,需要对套接字进行地址和端口的绑定,才能进行数据的接收和发送操作。

函数原型

bind()函数将长度为addlen的struct sockadd类型的参数my_addr与sockfd绑定在一起,将sockfd绑定到某个端口上,如果使用connect()函数则没有绑定的必要。绑定的函数原型如下:

#include<sys/types.h>
#include<sys/socket.h>
int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen);

bind()函数有3个参数。

·第1个参数sockfd是用socket()函数创建的文件描述符。

·第2个参数my_addr是指向一个结构为sockaddr参数的指针,sockaddr中包含了地址、端口和IP地址的信息。在进行地址绑定的时候,需要弦将地址结构中的IP地址、端口、类型等结构struct sockaddr中的域进行设置之后才能进行绑定,这样进行绑定后才能将套接字文件描述符与地址等接合在一起。

·第3个参数addrlen是my_addr结构的长度,可以设置成sizeof(struct sockaddr)。使用sizeof(struct sockaddr)来设置套接字的类型和其对已ing的结构。

bind()函数的返回值为0时表示绑定成功,-1表示绑定失败,errno的错误值如表1所示。

表1 bind的errno值及含义

928a8315c463d48f1c453f2ff0c0335.png

示例1

先建立一个UNIX族的流类型套接字,然后将套接字地址和套接字文件描述符进行绑定。

#define MY_SOCK_PATH "/somepath"
int main(int argc, char *argv[])
{
    int sfd;
    struct sockaddr_un addr; //AF_UNIX对应的结构
    sfd = socket(AF_UNIX, SOCK_STREAM, 0); //初始化一个AF_UNIX族的流类型socket
    if (sfd == -1) { //检查是否正常初始化socket
        perror("socket");
        exit(EXIT_FAILURE);
    }
    memset(&addr, 0, sizeof(struct sockaddr_un));//将变量addr置0
    addr.sun_family = AF_UNIX; //协议族为AF_UNIX
    strncpy(addr.sun_path, MY_SOCK_PATH, sizeof(addr.sun_path)-1); //复制路径到地址结构
    perror("bind");
    exit(EXIT_FAILURE);
    }
    ... //数据接收发送及处理过程
    close(sfd); //关闭套接字文件描述符
}

示例2

使用结构struct sockaddr_in绑定一个AF_INET族的流协议,先将结构struct sockaddr_in的sin_family设置为AF_INET,然后设置端口,接着设置一个IP地址,最后进行绑定。

#define MYPORT 3490
int main(int argc, char *argv[])
{
    int sockfd; //套接字文件描述符变量
    struct sockaddr_in my_addr; //以太网套接字地址结构
    sockfd = socket(AF_INET, SOCK_STREAM, 0); //初始化socket
    if (sockfd == -1) {
    peeror("socket"); //检查是否正常初始化socket
    exit(EXIT_FAILURE);
    }
    my_addr.sin_family = AF_INET; //地址结构的协议族
    my_addr.sin_port = htons(MYPORT); //地址结构的端口地址,网络字节序
    my_addr.sin_addr.s_addr = inet_addr("192.168.1.150"); //IP,将字符串的IP地址转化为网络字节序
    bzero(&(my_addr.sin_zero), 8); //将my_addr.sin_zero置为0
    if (bind(sockfd, (struct sockaddr *) &my_addr, sizeof(struct sockaddr)) == -1) { // 判断是否绑定成功
    perror("bind");
    exit(EXIT_FAILURE);
    }
    ... //接收和发送数据,进行数据处理
    close(sockfd); //关闭套接字文件描述符
}

众多python培训视频,尽在python学习网,欢迎在线学习!

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

王叔我老公还在客厅呢什么小说| 秘书奶头好大下面好紧| 欧美人与性口牲饺配视频免费| 意大利《医务室绣感》| 瑜伽馆里的私密按摩效果怎么样 | 《慈母夜吟》完整版| 免费观看已满十八岁电视剧在线播...| 啵啵浏览器| 楼梯间的秘密小说BY赵景明| 精品免费国产一区二区三区四区| 李秀晶| 姑父有力挺送小芳的背景故事| 武松叼着潘金莲奶头的是谁扮演的 | XBOX360龙的欧美RPG| 吃瓜网热门事件| 桥本有菜| 黑色董丝包臀紧身连衣裙| 九1黄9·1| 免费观看已满十八岁电视剧彩漫画| 妈妈爱看最经典十部电视剧| 成品人和精品人的区别哪个好| 中字《喝醉的丈夫被结城送回家》| 《睡眠指导1-6集》| 《帐篷里的秘密》动漫| 《有夫之妇的秘书》演员表| 同学的母亲中字ID| 《炸裂吧!巨棒》免费阅读漫画| 《互换人妻HD中字》| 人犬兽人在线观看免费完整| 边吃奶边扭身体哼唧怎么回事| EXO妈妈MV高清在线观看| 老师穿白色双开真丝旗袍怎么穿| 禁忌:家庭密码| 丈夫不在家儿媳想老公的背景故事| 《囚禁空姐》电影免费观看| 妈妈在家穿超薄内裤的注意事项| 女性左腿又开腿肚子中间疼视频 | 妈妈醉酒后把我当爸爸电视剧| 男按摩师吸乳房会得乳腺瘟吗| 女被扒开腿狂躁XXXXX视频| 女性左腿又开腿肚子视频大全