一、uip协议,作为服务器

一般情况下,在uip协议作为服务器使用,在while(1)中实现以下代码,不断读取网卡数据,进行处理,然后返回给客户端。

uip_len = tapdev_read((void *)uip_buf);if(uip_len > 0)   /* received packet */{ if(BUF->type == htons(UIP_ETHTYPE_IP))  /* IP packet */{uip_input();if(uip_len > 0){uip_arp_out();   tapdev_send((void *)uip_buf,uip_len);clear_udp_ports();                     }}else if(BUF->type == htons(UIP_ETHTYPE_ARP)) /*ARP packet */{//printf("Recv a ARP packet\r\n");uip_arp_arpin();    if(uip_len > 0){tapdev_send((void *)uip_buf,uip_len);    /* ARP ack*/}}}else if(timer_expired(&periodic_timer)) /* no packet but periodic_timer time out (0.5s)*/{timer_reset(&periodic_timer);for(i = 0; i < UIP_CONNS; i++){uip_periodic(i);if(uip_len > 0){uip_arp_out();tapdev_send((void *)uip_buf,uip_len);}}#if UIP_UDPfor(i = 0; i < UIP_UDP_CONNS; i++) {uip_udp_periodic(i);if(uip_len > 0) {uip_arp_out();tapdev_send((void *)uip_buf,uip_len);}}
#endif /* UIP_UDP *//* Call the ARP timer function every 10 seconds. */if(timer_expired(&arp_timer)){timer_reset(&arp_timer);uip_arp_timer();}}

二、uip协议,作为客户端,主动发送

在网上搜寻了以下,有的利用超时处理,有的加快服务器响应时间来发送,并没有实现利用uip协议主动发送功能,也就是作为客户端。仔细看了以下uip处理消息的流程,无非就是收到buf,分解,提取远端ip,端口,填充buf等操作,要想实现主动发送,必须自己完成后半部分工作,然后利用 网卡直接发送。主要思路如下:

1、设置远端IP,端口

2、从ARP列表寻找MAC

3、填充BUF

4、网卡发送

5、Demo链接

https://download.csdn.net/download/qq_18322543/10458634

uip协议,主动发送功能相关推荐

  1. UDP协议报文分析和主动发送UDP简单实现

    UDP协议报文分析和主动发送UDP简单实现 前言 一.Wireshark 报文解析 1.UDP报文实例 2.报文格式分析 ①.以太网头 ②.IP头 ③.UDP头 二.UDP主动传输数据的实现方式 1. ...

  2. NET开发邮件发送功能的全面教程(含邮件组件源码)(

    天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下. AD:2013云计算架构师峰会精彩课程曝光 ...

  3. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2 ...

  4. [转].NET开发邮件发送功能的全面教程(含邮件组件源码)

    转载自http://www.cnblogs.com/heyuquan/p/net-batch-mail-send-async.html 今天,给大家分享的是如何在.NET平台中开发"邮件发送 ...

  5. uIP1.0 主动发送的问题理解

    最近在LPC1768上调试uIP1.0的网络协议代码,设置配置的是不使用分包发送的模式,原本想着发送回传的字节数应该也不会太大,我都是本地自定义的协议.后面调试的时候,发现TCP协议居然有粘包和拆包的 ...

  6. android 添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于jmail实现android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助gmail app客户端,缺点是必须使用gmail帐号 ...

  7. android 信息添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号 ...

  8. (转)C#网络编程(订立协议和发送文件) - Part.4

    源码下载:http://www.tracefact.net/SourceCode/Network-Part4.rar C#网络编程(订立协议和发送文件) - Part.4 文件传输 前面两篇文章所使用 ...

  9. arp协议的主要功能是_程序员需要掌握的一些网络协议汇总

    今天我们来看下各层的网络协议,虽然开发过程中写代码不会直接涉及,但是理解好网络协议对编程和理解系统的整个运行过程是非常有帮助的哦. 一.应用层协议 1.HTTP HTTP(HyperText Tran ...

最新文章

  1. iOS三种拨打电话的方法
  2. Kong APIGW — OpenResty
  3. python中从键盘输入的代码_Python读取键盘输入的2种方法
  4. [Axios] 基于Promise封装属于自己的Ajax库
  5. 行测题相关,在线测评(图形找规律。逻辑思维)
  6. 软件测试--面试时怎么介绍前公司的项目经验
  7. Android 免费云真机
  8. 六分解谜四分温情,浅谈《像素小屋》倍受新手解谜者的青睐的原因
  9. cd 命令行进入目标文件夹
  10. 【企业分析】拉勾、Boss直聘、猎聘
  11. 项目思维导图软件测试分析,在软件测试中使用思维导图技术
  12. php开发工具PhpStorm新版本V2022.1 新增功能亮点介绍
  13. 小学计算机课优质课,2018年武汉市小学信息技术优质课评比
  14. java修改线程池名称_自定义线程池的名称(ThreadPoolExecutor)
  15. 对立统一(哲学与分析学)
  16. 种春草肥禾,织数字天下
  17. Ansible playbook 详解
  18. 用 python 实现简单AI 双人日麻(文字版)之三 加入COM出牌
  19. dell服务器sas2.5英寸1t硬盘10k,0XTH17 ST900MP0026 900GB 15K SAS 2.5寸DELL服务器硬盘
  20. 死磕Android_View工作原理你需要知道的一切

热门文章

  1. Form表单提交成功,但是后台并没有处理数据且debug无效
  2. 乖离率背离公式_龙周刊:乖离率是什么?
  3. LeetCode871.Minimum Number of Refueling Stops
  4. kubernetes 菜鸟_菜鸟系列k8s——k8s快速入门(1)
  5. swift之网络请求框架Alamofire
  6. MacBook 安装7zip
  7. OCR光学字符识别技术及其应用场景
  8. 白葡萄酒/红葡萄酒质量分析与预测(PCA+MLPClassifier)100%
  9. 25 Creative Ways to Promote Your App for Free
  10. 使用ZPL控制Zebra打印机