当前位置: 首页 > article >正文

Linux bind函数详解

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

bind()函数用于服务器端,服务器的网络地址和端口号通常固定不变,客户端得知服务器的地址和端口号以后,可以主动向服务器请求连接。因此服务器需要调用bind()绑定地址。bingd()函数定义在sys/socket.h头文件中;

sockfd表示socket文件的文件描述符,一般为socket函数的返回值;

addr表示服务器的通信地址,本质为struct sockaddr 结构体类型指针,struct sockaddr结构体定义如下

struct sockaddr{sa_family_t sa_family;char		sa_data[14];
};

结构体中的成员,sa_data[]表示进程地址;

bind函数中的第三个参数addrlen表示参数addr的长度;addr参数可以接受多种类型的结构体,而这些结构体的长度各不相同,因此需要使用addrlen参数额外指定结构体长度;可以使用下列语句,定义一个struct sockaddr_in类型的结构体

struct sockaddr_in servaddr;//结构体定义
bzero(&servaddr,sizeof(servaddr));//结构体清零
servaddr.sin_family=AF_INET;//设置地址类型为AF_INET
servaddr.si_addr.s_addr=htonl(INADDR_ANY);//设置网络地址为INADDR_ANY
servaddr.sin_port=htons(80);//设置端口为80

bind函数调用成功返回0,否则返回-1,并设置erro;

http://www.lryc.cn/news/2420708.html

相关文章:

  • 华为资深工程师带你了解华为七大根技术
  • FastTrack协议
  • 提升效率!技术宅、学生党必备!大学四年使用的几十个高效工具都在这里了
  • 详解hashcode(hashcode与equals)
  • HttpClient的post和get请求
  • 高版本msado15.dll编译的程序读取access在低版本系统下报错空指针的问题(错误码:0x80004003)
  • 量子计算之pyQpanda入门实践1
  • 短视频分享网站(源码+开题)
  • h3c Vlan和Trunk实验
  • Java中ArrayList remove会遇到的坑
  • java小程序_Java小程序
  • 解决Apache出现的CPU高占用率的问题
  • 做自媒体,怎么做赚钱?这3点很关键
  • java集成京东联盟且订单绑定自有平台用户代码实现(保证可用)
  • win10卸载CUDA10.0重新安装10.2以及torch1.6-gpu和tf2.2-gpu环境的配置
  • 视达配色教程13 黄色的色彩性格是什么
  • 学习linux的一些网络资源
  • 单射、双射、满射
  • 软件测试人员必备的60个测试工具,果断收藏了!
  • CPU分析系列--sysstat(mpstat+pidstat)分析系统CPU和I/O负载
  • 微软杀毒软件Microsoft Security Essentials试用
  • 什么是ISTQB认证
  • NandFlash驱动源码详细分析
  • javaWeb酒店客房管理系统
  • CAYEE——INS803
  • Keras中Dropout的用法详解
  • php免费开源多用户商城,开源php多用户商城系统好不好?
  • VF6.0常用命令和主要程序命令
  • 真的假的?94年出生985高校博士生导师道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  • Exchange 2003安装详细教程(三)