lwIP(V1.3.0) RAW API函数源码分析2----tcp_bind()函数
来源:互联网 发布:安卓版相册制作软件 编辑:程序博客网 时间:2024/05/18 00:22
位于: 位于:lwip-x.x.x/src/core/tcp.c
原型: err_t tcp_bind(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port)
功能:绑定连接到一个本地端口号和IP地址.
函数源码:
分析:这个函数的大部分代码用于检验给出的IP地址和端口号是否合适,如果合适则将给出的IP地址和端口号赋给当前PCB,更新已绑定tcp_pcb列表并返回ERR_OK.如果给出的参数不合适,则返回ERR_USE. 参数ipaddr如果为IP_ADDR_ANY,表示绑定到任何本地地址,那么IP_ADDR_ANY是什么呢?在lwip-1.3.0/src/include/ipv4/lwip/ip_addr.h中定义了: #define IP_ADDR_ANY ((struct ip_addr *)&ip_addr_any) ip_addr_any是一个ip_addr型变量,在lwip-1.3.0/src/core/ipv4/ip_addr.c中有如下声明: #define IP_ADDR_ANY_VALUE 0x00000000UL const struct ip_addr ip_addr_any = { IP_ADDR_ANY_VALUE }; 所以, IP_ADDR_ANY是等于0x00000000UL的. 在IP地址上规定 0.0.0.0为广播地址,也就是任意地址的意思. 注1:在tcp.h中有如下定义: /* The TCP PCB lists. TCP PCB列表*/ union tcp_listen_pcbs_t { /* List of all TCP PCBs in LISTEN state. 进入监听状态的所有TCP PCB列表*/ struct tcp_pcb_listen *listen_pcbs; struct tcp_pcb *pcbs; }; extern union tcp_listen_pcbs_t tcp_listen_pcbs;
- lwIP(V1.3.0) RAW API函数源码分析2----tcp_bind()函数
- lwIP(V1.0.0) RAW API函数源码分析2----tcp_bind()函数
- lwIP(V1.3.0) RAW API函数源码分析1----tcp_new()函数
- lwIP(V1.3.0) RAW API函数源码分析3----tcp_listen()函数
- lwIP(V1.3.0) RAW API函数源码分析4----tcp_accept()函数
- LwIP(V1.0.0) RAW API函数源码分析1----tcp_new()函数
- lwIP(V1.0.0) RAW API函数源码分析3----tcp_listen()函数
- lwIP(V1.0.0) RAW API函数源码分析4----tcp_accept()函数
- LWIP 无OS RAW-API 函数
- LWIP 无OS RAW-API 函数使用流程
- lwIP raw API
- lwIP raw API
- lwip BSD API函数说明
- LWIP之NETCONN API 函数
- [LWIP学习]--udp_input函数分析
- [LWIP学习]--pbuf_realloc函数分析
- [LWIP学习]--socket函数分析
- [LWIP学习]--bind函数分析
- .NET平台OLEDB类型映射到Access数据类型
- 大一寒假总结
- .net web技术架构分享
- USB3.0到底比USB2.0快多少大测试
- web上显示wap网站的内容
- lwIP(V1.3.0) RAW API函数源码分析2----tcp_bind()函数
- DLL地狱问题
- 开发者必知的20个jQuery插件——之一jQuery+Flot可视化图表
- Chinasb & B3log!
- VC++2008如何生成OCX控件包装类
- [Database] [DB2]根据TABLEID查看TABLE
- Ext.元素模板(DomHelper)
- c#如何在类中定义静态变量
- oracle ora-01110错误恢复