Chinaunix首页 | 论坛 | 博客
  • 博客访问: 121755
  • 博文数量: 15
  • 博客积分: 1581
  • 博客等级: 上尉
  • 技术积分: 411
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-29 09:48
文章分类

全部博文(15)

文章存档

2011年(8)

2010年(7)

我的朋友

分类: C/C++

2011-10-20 11:40:44

    总算一点一点看完了UIP协议,期间各大网站,各位coder的代码翻了好几个,在此感谢。
    首先,应清楚UIP协议在代码中扮演的是什么角色,我觉得流水线一样,将应用层的数据,通过流水线不断包装。
    TCP---IP---MAC--->发送。
    uip_buf就是实际的原料了。在UIP协议就使用了一个缓冲区。其实是char类型的数组,然后各种strut将它转换成自己的结构,如:
  1.     #define BUF ((struct uip_eth_hdr *)&uip_buf[0])
  2.     #define ICMPBUF ((struct icmpip_hdr *)&uip_buf[UIP_LLH_LEN])
  3.     #define UDPBUF ((struct uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN])
    所有的数据都保存在uip_buf数组中。通过uip_process函数来封装。
    uip_len是uip_buf接收到的数据的长度。
    具体的发送到网络上的函数需要根据自己的平台具体实现,整体的循环不需要改动多少。

阅读(5840) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~