Unix Network Programming(11)---bind 函数
来源:互联网 发布:csol星陨巨锤连击编程 编辑:程序博客网 时间:2024/05/21 00:20
bind函数把一个本地协议地址赋予一个套接字。对于网际网协议,协议地址是32位的IPv4地址或128位的IPv6地址与16位的TCP或UDP端口号的组合。
#include <sys/socket.h>int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen); /*若成功则为0,若出错则为1*/
第二个参数是一个指向特定于协议的地址结构的指针,第三个参数是该地址结构的长度。对于TCP,调用bind函数可以指定一个端口号,或指定一个IP地址,也可以两者都指定,还可以都不指定。
- 服务器在启动时捆绑它们的众所周知端口。如果一个TCP客户或服务器未曾调用bind捆绑一个端口,当调用connect或listen时,内核就要为相应的套接字选择一个临时端口。这对TCP客户来说是正常的,除非需要一个预留端口;然而对于TCP服务器来说时及其罕见的,因为服务器是通过它们的众所周知端口被大家认识的。
- 进程可以把一个特定的IP地址捆绑到它的套接字上,不过这个IP地址必须属于其所在主机的网络接口之一。对于TCP客户,这就为在该套接字上发送IP数据报指派了源IP地址;对于TCP服务器,这就限定该套接字只接收目的地为该IP地址的客户连接。如果TCP服务器没有把IP地址捆绑到它的套接字,内核就把客户发送的SYN的目的IP作为服务器的源IP地址。
如果指定端口号为0,那么内核就在bind被调用时选择一个临时接口。然而如果指定IP地址为通配地址,那么内核将等到套接字已连接(TCP)或已在套接字上发出数据报(UDP)时才选择一个本地IP地址。
0 0
- Unix Network Programming(11)---bind 函数
- Unix Network Programming(9)---Socket函数
- Unix Network Programming(10)---connect 函数
- Unix Network Programming(12)---listen 函数
- Unix Network Programming(13)---accept 函数
- Unix Network Programming(16)---close 函数
- Note: UNIX Network Programming
- unix network programming
- Unix Network Programming
- unix network programming
- Unix network programming
- Unix Network Programming(2)---错误处理:包裹函数
- Unix Network Programming(14)---fork 和 exec 函数
- Unix Network Programming(17)---getsockname 和 getpeername函数
- Unix Network Programming {socket 选项}
- Unix Network Programming {Nonblocking IO}
- Unix Network Programming(3)---UDP
- Unix Network Programming(4)---TCP
- 存储过程
- iOS与android的操作与交互比较区别
- 中国式民主
- JAVA线程池学习以及队列拒绝策略
- 3.完整的嵌入式学习路线图
- Unix Network Programming(11)---bind 函数
- C语言_指针
- 黑马程序员——C基础之迷宫游戏
- 笔记十七(绘制图片)
- jasperreport开发手册--ireport教程
- U盘启动中标麒麟V6双系统安装教程
- 下拉菜单打开或关闭网络后网络状态的判断
- online_judge_1026
- 编译mupdf的ios版