三个基本支持函数:
tapdev_init() - 网络芯片(PHY)以及uIP本身的初始化.
tapdev_read() - 从网络层读取数据包.
tapdev_send() - 向网络层输出数据包.
后两个函数就是连接层与传输层的唯一接口,极其简洁.一般不会发生问题.
应用移植中所出现的问题,麻烦都是传输层与应用层的衔接.这种衔接就是所谓的回调函数(call back)的使用.
这里的回调函数就是所谓的appcall().有两类回调函数:(1)uip_udp_appcall -用于dhcp和dns的任务;(2)
uip_appcall -tcp/ip应用的接口.前者很简单,用户只需添加少量的处理便可截取所需的信息(局域网路由其分配的ip,远端服务器的英特网ip).而后者才是移植过程中的工作重点.
回调的产生由所谓的'事件'激发.所以回调函数必须检测激发事件(uip_newdata(), uip_connected(), uip_closed(), uipuip_acked(), _rexmit(), uip_aborted(), ...)并根据应用的需要作出对应的处理.
|