套接字API(二)bind函数
来源:互联网 发布:csgo 性能数据 编辑:程序博客网 时间:2024/05/17 04:59
一 概述:
(一)功能:
1.bind函数把一个本地协议地址赋予给一个套接字,即套接字绑定。
2.对于网际协议,协议地址是IP地址和端口号的组合。
3.一般而言,服务器都调用bind,而客户端调用bind,绑定客户端套接字地址意义不大。
(二)格式:
1.语法:
*int bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen)
2.参数说明:
*sockfd:socket函数返回的套接字描述符。
*addr:指向特定于协议的地址结构。
*addrlen:该地址结构的长度。
3.套接字是捆绑的主体,IP地址和端口是捆绑在套接字上的客体。
4.IP地址和端口可以都指定、指定一个或都不指定。
二 使用指南:
(一)绑定细节:
1. 端口:一般情况下,服务器在启动时绑定它们众所周知的端口。如果TCP客户或服务器未调用bind绑定一个端口,当调用connect或listen时,内核就要为相应套接字选择一个临时端口。对于TCP客户来说是正常的,但对于服务器却极为罕见。
2. IP地址:进程可以把一个特定的IP地址绑定到它的套接字上,不过这个IP地址必须属于它所在主机的网络接口之一。
*对于TCP客户:为在该套接字上发送的数据报指定了源IP地址。客户通常不把IP地址绑定到套接字上,当连接套接字时,内核根据所用外出网络接口来选择源IP地址,外出接口取决于到达服务器所需的路径。
*对于TCP服务器:就限定该套接字只接收那些目的IP地址为这个IP地址的客户连接。如果服务器没有绑定IP地址,内核就把客户发送SYN的目的IP地址作为服务器的源IP地址。
(二)使用细节:
1.端口号:指定为0,则内核在bind被调用时选择一个临时端口。为了得到这个临时端口名字,必须getsockname来返回协议地址。
2.IP地址:
*IPv4:通配地址由常值INADDR_ANY,其值一般为0,它告知内核去选择IP地址。
*IPv6:通配地址由in6addr_any指定。
三 SO_REUSEADDR和SO_REUSEPORT套接字选项:
*待续。。。
- 套接字API(二)bind函数
- Linux套接字通信常用函数-bind
- 套接字&套接字地址结构和bind()函数
- 使用Socket套接字绑定函数bind的一个细节
- 套接字API(一)socket函数
- 套接字API(三)connect函数
- 套接字API(四)listen函数
- 套接字API(五)accept函数
- VxWorks网络系统(3) – bind分配网络地址给指定的套接字函数/listen允许连接套接字函数
- 套接字API(六)close函数和shutdown函数
- 套接字API(九)inet_pton函数和inet_ntop函数
- 套接字联网API之二 select作用和案例
- 套接字编程API
- 套接字API
- 套接字Socket:API
- 套接字API(十)sendto和recvfrom函数
- 套接字API(十一)recv和send函数
- 套接字API(十二)readv和writev函数
- 使用ptrace跟踪进程
- 大连实训之基于MFC的对数据库的基本操作(整体代码)
- Java开发环境配置
- 局域网访问ArcgisServer 地图失败解决办法
- mongodb常用命令
- 套接字API(二)bind函数
- android 4.0动画
- semaphore信号的使用
- 注解技术
- 黑马程序员_java集合
- 嵌入式学习正式开始了
- s3c2410的Bootloader(Vivi)简介
- vivi的第一阶段
- vivi的第二阶段