LWIP之TCP层发送相关

本文详述了在xilinx SDK中lwIP TCP层的主要函数,包括tcp_close、tcp_bind、tcp_listen_with_backlog、tcp_recved等功能,以及如何使用它们进行连接管理、数据收发和错误处理。这些函数在裸机环境下直接操作tcp_pcb结构体,实现了TCP协议的关键功能。
摘要由CSDN通过智能技术生成

    使用lwIP的TCP/IP协议栈提供的服务有两种方式:一种是使用lwIP API接口,另一种是直接调用TCP和UDP模块中的函数。本文主要介绍第二种中TCP模块部分的主要函数。

    本文在xilinx的SDK工具中根据生成的源码总结出的几个主要函数,源码中其它大部分函数均是被这几个主要函数的调用来实现功能的。通过这几个函数可以直接在裸机下运行实现协议。需要注意的是,所有函数均是基于“tcp_pcb”这样一个结构体上实现的,定义如图所示。

    这个结构体用于管理tcp协议,包括连接、数据包、收发等状态。一般不需要自己操作,均是由模块函数来使用的。我们可以简单看一下其组成,在实际应用中根据需要可以查看结构体中的某些项。下面开始介绍函数,介绍顺序不重要。

    一、tcp.c文件

1、err_t tcp_close(struct tcp_pcb *pcb)

说明:断开PCB中的连接,释放其占用资源,无论其正在监听或已经建立了连接。

参数:pcb表示要关闭的协议控制块。

返回:ERR_OK表示连接已经被断开,其它表示pcb没有被断开,其资源没有被释放。

PCB(protocol control block)协议控制块,包括tcp和udp等多种,每种协议有自己的协议控制块,如tcp_pcb。另外,err开头的数据类型一般是int型,表示状态,一般不需理会。

   

2、err_t tcp_bind(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port)

说明:设置某个协议控制块用于连接的本地ip地址和端口号。

参数:pcb协议控制块;ipaddr表示ip地址的结构体,用IP_ADDR_ANY设置默认本地ip地址;port表示16位端口号。

返回:ERR_USE表示端口号被占用,ERR_OK表示设置成功

ip_addr结构体中只有一个32位整数项:ipaddr->addr,ip地址应由高到低位依次填充该项。这个IP地址的结构体应该在使用本函数前事先定义好。

   

3、struct tcp_pcb * tcp_li

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值