本章供自己复习使用,只是介绍一些标准的函数,不介绍移植过程,也不介绍uip协议。有基础的人一看就明朗。
没基础的可以看看这篇百度文库,非常适宜:https://wenku.baidu.com/view/a9f222f09e3143323968938c.html
UIP简单使用个人总结
注:质料来源于网络
部分函数:
uip_acked() 一个数据包到达,确认先前发送到数据
uip_newdata() 新数据到达
uip_connected() 连接主机
uip_rexmit() 计时时间满重发
uip_poll() 计时时间满周期性轮询
uip_closed() 远程主机关闭连接
uip_aborted() 远程主机中断连接
uip_timedout() 太多重传,连接中断
uip全局变量uip_conn,这个其实是一个结构体,里面有很多信息。
uip_conn->lport 本地端口
接收数据:
uip_newdata() 判断是否有数据到达
uip_appdata 实际数据指针
uip_datalen() 数据大小
uip_conn->ripaddr[0]&0xff,uip_conn->ripaddr[0]>>8,uip_conn->ripaddr[1]&0xff,uip_co nn->ripaddr[1]>>8 保存对方的ip地址
HTONS(uip_conn->rport) 保存对方的端口
发送数据:
uip_send() 发送数据,可以用uip_appdata指针,也可以不用
Uip_acked() 发送的数据被应答
数据重发:
只有当uip发现数据没有发送成功的情况下去操作
uip_rexmit() 判断是否要重发上次数据,1需要,0不需要
Uip_stop() 关闭数据传输
Uip_restart() 重新开启数据传输
关闭连接:
uip_close() 关闭连接
Uip_abort() 中断连接
Uip_closed() 远程主机是否关闭连接
Uip_aborted() 远程主机是否中断连接
监听端口:
Uip_listen() 监听某个本地端口
Uip_connected() 当有新连接时,这个函数为1
打开连接:
Uip_connect() 连接到服务器,返回一个uip_conn指针
Uip_ipaddr() 把ip打包方便连接
案例:
U16 ipaddr[2];
Uip_ipaddr(ipaddr,192.168.0.1);
Uip_connect(ipaddr,1234);
接口函数:
Uip_init() 初始化uip底层协议栈
uip_input() 实际上调用的是uip_periodic()函数,主要是处理ip报文
uip_udp_periodic() 处理连接的事件
函数截图: