UIP中文文档第四 应用层要调用的函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这一部分包含的内容较多,包括一些宏定义和函数.
宏定义:
1.#define uip_outstanding(conn) ((conn)->len)
2.#define uip_datalen() 存放在uip_appdata中的现行可用的传入数据长度
3.#define uip_urgdatalen() 到达连接的带外数据长度(紧急的)
4.#define uip_close() 关闭当前连接
5.#define uip_abort() 中止当前连接
6.#define uip_stop() 告诉发送方主机停止发送数据
7.#define uip_stopped() 查明当前连接是否以前被uip_stop()停止过.
8.#define uip_restart() 如果当前连接被uip_stop()停止过,重新开始.
9.#define uip_udpconnection() 查明当前连接是否是udp连接.
10.#define uip_newdata() 查明新传入的数据是否可用
11.#define uip_acked() 查明以前发送的数据是否得到回应了
12.#define uip_connected() 查明连接是否连接上了.
13.#define uip_closed() 查明连接是否是被另一端关闭.
14.#define uip_aborted() 查明连接是否被另一端中止.
15.#define uip_timeout() 查明连接是否超时.
16.#define uip_rexmit() 查明是否需要将上次传送的数据重新传送.
17.#define uip_poll() 查明连接是否被uip轮询了.
18.#define uip_initialmss() 获得当前连接的初始最大段大小.
19.#define uip_mss() 获取可以在当前连接上发送的最大段大小.
20.#define uip_udp_remove(conn) 移除一个udp连接.
21.#define uip_udp_bind(conn,port) 绑定一个udp连接到本地端口
22.#define uip_udp_send(len) 在当前连接上发送一个长度为len的udp数据报. 复制代码
函数:
1.void uip_listen(u16_t port); 开始监听指定的端口.
2.void uip_unlisten(u16_t port);停止监听指定的端口.
3.uip_conn * uip_connect(uip_ipaddr_t * ripaddr, u16_t port); 通过TCP
连接到远程主机.
4.void uip_send(const void * data,int len); 在当前连接上发送数据.
5.uip_udp_conn * uip_udp_new(uip_ipaddr_t * ripaddr ,u16_t port);建立
一个新的udp连接.
复制代码
1. #define uip_datalen()
如果有当前可用的传入数据的话,获取其长度.必需先调用uip_data()查明是否有当前可用的传入数据.
应有例程:
dhcpc.c, telnetd.c, and webclient.c.
此宏定义于uip.h的550行.
2. #define uip_urgdatalen()
任何到达连接的带外数据(紧迫数据)长度.要使用此宏,应配置UIP_URGDATA宏为真. 此宏定义于
此宏定义于uip.h的561行.
3. #define uip_close()
此函数会以一种谨慎的方式关闭连接.
应用例程:
telnetd.c.
此宏定义于uip.h的570行.
4. #define uip_abort()
此函数用于中止(重置)当前连接,多用于出现错误导致无法使用uip_close()的场合.
应用示例:
webclient.c.
此宏定义于uip.h的581行.
5. #define uip_stop()
告诉发送主机停止发送数据.此函数会关闭接收机窗口,停止从当前连接接收数据.
此宏定义于uip.h的591行.
6. #define uip_restart()
如果当前连接曾被uip_stop()停止,那么重新开始.
该函数会重新打开接收机窗口,从当前连接上接收数据.
此宏定义于uip.h的610行.
7. #define uip_udpconnection()
此函数查明当前连接是否是一个udp连接.
此宏定义于uip.h的626行.
8. #define uip_newdata()
如果uip_appdata指针所指之处有送给应用的新数据,此宏得到一个非零值.数据的大小可以通过uip_len获得.
应用例程:
dhcpc.c, resolv.c, telnetd.c, and webclient.c.
此宏定义于uip.h的637行.
9. #define uip_acked()
如果上次发送给远程主机的数据得到回应了,此宏得到一个非零值,这意味着应用可以发送新的数据.
应用例程:
telnetd.c, and webclient.c.
此宏定义于uip.h的648行.
10. #define uip_connected()
如果当前连接己经与远程主机连接,则此宏得到非零值.这包括两种情形,一是连接被主动打开(通过uip_connect()),二是连接被被动打开(通过uip_listen()).
应用例程:
hello-world.c, telnetd.c, and webclient.c
此宏定义于uip.h的660行.
11. #define uip_closed()
如果远程主机关闭了当前连接,则此宏得到非零值.这时应用可能要做一些清理工作.
应用例程:
smtp.c, telnetd.c, and webclient.c.
此宏定义于uip.h的670行.
12. #define uip_aborted()
如果当前连接被远程主机中止或重置,则为非零值.
应用例程:
smtp.c, telnetd.c, and webclient.c此宏定义于uip.h的680行.