缓冲区函数
函数名称
功能
原型
参数
返回
netbuf_new()
分配并初始化一个netbuf结构
Struct netbuf *netbuf_new (void)
NULL: 无可用的内存时
netbuf:函数正常调用,返回一个netbuf结构的指针
netbuf_delete()
回收已经建立的netbuf结构
void netbuf_delete (struct netbuf *buf)
buf: 准备回收的netbuf结构
netbuf_alloc ()
为指定的netbuf结构分配指定字节大小的缓冲区内存
void *netbuf_alloc(struct netbuf *buf, u16_t size)
buf: 指定一个待分配内存的netbuf结构
size: 指定为netbuf分配内存的字节数
NULL: 无可用的内存时
void *:函数正常调用,返回一个指向已分配内存的指针
netbuf_free()
回收与指定的netbuf结构相关联的缓冲区
void netbuf_free(struct netbuf *buf)
buf: 指定的netbuf结构
netbuf_ref()
回收与指定的netbuf结构相关联的缓冲区
err_t netbuf_ref (struct netbuf *buf, const void *dataptr, u16_t size)
buf: 指定的netbuf结构
dataptr:指向存储区数据的指针
size:存储区数据的大小(以字节为单位)
buf: 指定的netbuf结构
dataptr:指向存储区数据的指针
size:存储区数据的大小(以字节为单位)
netbuf_chain ()
将两个netbuf结构的首尾链接在一起
void netbuf_chain (struct netbuf *head, struct netbuf *tail)
head: 首部的netbuf结构
tail:尾部的netbuf结构
netbuf_data()
获取一个指向netbuf 结构中的数据的指针
err_t netbuf_data (struct netbuf *buf, void **dataptr, u16_t *len)
err_t netbuf_data (struct netbuf *buf, void **dataptr, u16_t *len)
ERR_OK:数据被正确地获取
ERR_BUF:有错误发生,数据未能被正确地获取
netbuf_next()
修改netbuf中的数据片段的指针以便指向netbuf中的下一个数据片段
s8_t netbuf_next(struct netbuf *buf)
buf: 需要修改数据片段指针的netbuf结构
enum函数
-1:表明已经到了最后一个数据片段的后面的位置,netbuf中已经没有数据片段了
1: 表明指针现在正指向最后一个数据片段
0: 表明netbuf中还有很多的数据片段存在
netbuf_first ()
修改netbuf中的数据片段的指针以便指向netbuf中的下一个数据片段
void netbuf_first(struct netbuf *buf)
buf: 需要修改数据片段指针的netbuf结构
其它函数
函数
netbuf_copy()的定义服务的, 完成数据块复制的功能
netbuf_len()用来获取 netbuf buf中的数据长度
netbuf_fromaddr()用于获取接收到的 netbuf buf的主机 IP地址。
netbuf_fromport()用于获取接收到的 netbuf buf 的主机端口号。
网络连接函数调用
函数名称
功能
原型
参数
返回
netconn_new_with_proto_and_callback ()
建立一个确定类型的连接,并为其分配一个回调函数
struct netconn *netconn_new_with_proto_and_callback (enum netconn_type t, 
u8_t proto, 
netconn_callback callback)
见下*1
NULL:  当内存分配错误时
netconn: 函数正常调用,返回一个netconn结构的指针
netconn_delete ()
关闭一个netconn连接并释放它占用的所有资源
err_t netconn_delete(struct netconn *conn)
conn: 准备删除的连接
ERR_OK:当连接被正确删除时
netconn_type ()
获取由参数conn指定的连接类型
enum netconn_type netconn_type (struct netconn *conn)
conn: 指定获取类型的连接
参数conn的连接类型,为枚举类型enum netconn_type中的一项,与函数netconn_new_with_proto
_and_callback()中的参数t相同
netconn_getaddr ()
*2
获取指定连接的远程或本地的IP地址及端口号
err_t netconn_getaddr (struct netconn *conn, 
struct ip_addr *addr, 
u16_t *port, 
u8_t local)
*3
ERR_OK:表示正确获取了当前连接信息
ERR_CONN:表示当前连接不可用
netconn_bind ()
为指定的连接绑定确定的本地IP地址和端口号
err_t netconn_bind(struct netconn *conn, struct ip_addr *addr, u16_t port)
conn: 指定要绑定的连接
addr: 为连接指定绑定的IP地址(当等于参数IP_ADDR_ANY时,则绑定到所有的本地IP地址)。
port: 为连接指定绑定的端口号,不能用于RAW
ERR_OK:表示绑定正确
其它一个不确定的值:表示绑定失败
netconn_connect ()
将一个指定的连接连接到一个具有指定IP 地址和端口号的主机
err_t netconn_connect (struct netconn *conn, struct ip_addr *addr, u16_t port)
conn: 指定一个连接
addr: 连接远程主机的IP地址
port: 连接远程主机的端口号(不能用于RAW类型的连接)
ERR_OK:当正确地建立连接时
netconn_disconnect ()
断开一个指定的连接(仅能用于UDP连接)
err_t netconn_disconnect (struct netconn *conn)
conn: 指定要断开的连接
ERR_OK:当连接被正确删除时
netconn_listen_with_backlog ()
使指定的连接进入TCP(TCP LISTEN)监听状态
err_t netconn_listen_with_backlog (struct netconn *conn, u8_t backlog)
conn: 指定准备设置进入监听状态的TCP类型的连接
backlog:设定监听的积压工作,即可以有多少工作等待处理,使用它必须在文件lwipopts.h中设置
TCP_LISTEN_BACKLOG = 1
ERR_OK:表示连接正确进入监听状态
其它值:表示有错误发生
netconn_accept ()
阻塞进程直至从远程主机发出的连接请求到达指定的连接
struct netconn *netconn_accept (struct netconn *conn)
conn: 指定一个已经建立了的TCP类型的连接
netconn:表示与远程主机正确地建立了连接,返回新连接的数据结构
NULL:表示超时连接失败
netconn_recv ()
阻塞进程,等待数据到达指定的连接
struct netbuf *netconn_recv (struct netconn *conn)
conn: 指定一个接收数据的连接
NULL:表示连接已经被远程主机关闭
netbuf: 数据正确接收,返回一个包含着接收到的数据的netbuf结构
netconn_sendto ()
向远程主机发送数据(仅能用于UDP 或RAW类型的连接)
err_t netconn_sendto (struct netconn *conn, 
struct netbuf *buf, 
struct ip_addr *addr, 
u16_t port)
conn: 指定发送数据的连接
buf:包含发送数据的一个缓冲区数据结构
addr:远程主机的IP地址
port:远程主机的端口号
ERR_OK:表示数据被正确地发送
err_t类型的其它值:表示有错误发生
netconn_send ()
发送数据(仅能用于UDP 或RAW类型的连接)
err_t netconn_send (struct netconn *conn, struct netbuf *buf)
conn: 指定发送数据的连接
buf:包含发送数据的一个缓冲区数据结构
ERR_OK:表示数据被正确地发送
err_t类型的其它值:表示有错误发生
netconn_write ()
发送TCP数据
err_t netconn_write (struct netconn *conn, const void *dataptr, int size, u8_t apiflags)
*4
ERR_OK:表示数据被正确地发送
err_t类型的其它值:表示有错误发生
netconn_close ()
关闭指定的TCP连接
err_t netconn_close (struct netconn *conn)
conn: 指定关闭的连接
ERR_OK:表示连接正常关闭
err_t类型的其它值:表示有错误发生
netconn_join_leave_group()
使连接参加或退出一个UDP 类型的多播组
err_t netconn_join_leave_group (struct netconn *conn,
                        struct ip_addr *multiaddr,
                          struct ip_addr *interface,
                          enum netconn_igmp join_or_leave)
conn::指定一个用于改变多播地址的UDP 类型的连接
multiaddr:参加会退出多播组的广播IP地址
interface:用于发送igmp信息的网络接口的IP地址
join_or_leave:表示参加还是退出一个多播组,可以为NETCONN_JOIN 或NETCONN_LEAVE
ERR_OK:表示连接被正确加入或退出多播组
err_t类型的其它值:表示有错误发生
netconn_gethostbyname ()
进行一次DNS 的查询
err_t netconn_gethostbyname (const char *name, struct ip_addr *addr)
name:一个字符串,表示要查询的一个DNS主机的名字
addr:查询到的DNS名字对应的IP地址
*5
函数 netconn_peer()表示获取远程主机的 IP地址及端口号
netconn_addr()则表示
获取指定连接的本地 IP地址和端口号。
函数 netconn_listen()表示使 TCP进入监听(TCP LISTEN)状态,
函数 netconn_err()和 netconn_recv_bufsize()则表示获取 conn 连接的一些状态信息
IP4_ADDR(ipaddr, a,b,c,d)
格式化指定设置的IP地址
*6
ipaddr:指定要格式化的ipaddr类型的数据
a:IP地址的最高字节
b:IP地址的第三个字节
c:IP地址的第二个字节
d:IP地址的最低字节
*1 t:  所创建的连接的类型,可以取 NETCONN_INVALID:NETCONN_TCP、NETCONN_UDP、
NETCONN_UDPLITE、NETCONN_UDPNOCHKSUM、NETCONN_RAW
proto:RAW IP pcb的IP协议
callback:当物理链路有数据接收或发送时调用的回调函数
*2 netconn_peer()和 netconn_addr(),分别
用于获取远程主机的 IP地址信息和本地主机的 IP地址信息
*3 conn: 指定的连接
addr: 该参数为结果参数,存放获取连接的IP地址
port: 该参数为结果参数,存放获取连接的端口号(对于RAW,存放协议类型)
local: 为1表示获取本地主机的IP地址及端口号;为0表示获取远程主机的IP地址及端口号
*4 conn: 准备发送数据的TCP连接
dataptr:指向发送数据缓冲区的指针
size:发送数据的长度。这里对数据长度没有任何限制。这个函数不需要应用程序明确地分配缓冲
区(buffers),因为这可由协议栈来负责
apiflags:可以取 NETCONN_NOCOPY  、NETCONN_COPY 和 NETCONN_MORE 中的一个。当
flags值为NETCONN_COPY时, dataptr指针指向的数据将被复制到为这些数据分配的内存缓冲区。
这就允许这些数据在函数调用后可以直接修改,但是这会在执行时间和内存使用率方面有所降低。
如果 flags 值为 NETCONN_NOCOPY,则数据不会复制而是直接使用 dataptr 指针来引用。
这些数
据在函数调用后不能被修改,因为这些数据可能会被放在当前指定连接的重发队列,并且会在里面
逗留一段不确定的时间。 当要发送的数据在ROM中因而数据不可变时很有用。 而参数NETCONN_
MORE则指向上次发送的那个数据段,适用于连续发送数据的情况。。
*5 ERR_OK: 表示查询成功,函数正常返回。
ERR_MEM:内存错误,稍后会重试,重新查询。
ERR_ARG:DNS客户端未初始化或者没有到合适的主机名。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。