当前位置: 首页 > news >正文

贵州网站制作品牌公司今天新闻摘抄十条

贵州网站制作品牌公司,今天新闻摘抄十条,南昌网站建设讯息,佛山网站建设公司怎么样1、今天要实现lwip的多个ip配置,本来以为需要自己修改很多核心代码 2、查阅资料才发现,lwip已经把接口留出来了 /** Define this to 1 and define LWIP_ARP_FILTER_NETIF_FN(pbuf, netif, type) * to a filter function that returns the correct neti…

1、今天要实现lwip的多个ip配置,本来以为需要自己修改很多核心代码

2、查阅资料才发现,lwip已经把接口留出来了

/** Define this to 1 and define LWIP_ARP_FILTER_NETIF_FN(pbuf, netif, type)
 * to a filter function that returns the correct netif when using multiple
 * netifs on one hardware interface where the netif's low-level receive
 * routine cannot decide for the correct netif (e.g. when mapping multiple
 * IP addresses to one hardware interface).
 */

/** 将此定义为1,并将LWIP_ARP_FILTER_NETIF_FN(pbuf, netif, type)定义为一个过滤函数,该函数在使用单个硬件接口上的多个netif时返回正确的netif。当netif的低级接收例程无法确定正确的netif时(例如,当将多个IP地址映射到单个硬件接口时),需要使用此过滤函数。
*/


#ifndef LWIP_ARP_FILTER_NETIF
#define LWIP_ARP_FILTER_NETIF 0
#endif

3、所以我们只需要定义好宏

        #define LWIP_ARP_FILTER_NETIF    1        //多ip的支持

和写好

struct netif * LWIP_ARP_FILTER_NETIF_FN(struct pbuf *p, struct netif *netifIn, u16_t type)

函数即可

4、我的操作

        4.1> 在lwipopt.h定义使能宏LWIP_ARP_FILTER_NETIF ,以支持多ip的操作

4.2、编写LWIP_ARP_FILTER_NETIF_FN函数,以能根据ip能找到对应的网卡

/*
*********************************************************************************************************
* Function Name : LWIP_ARP_FILTER_NETIF_FN
* Description   : 多ip,识别正确的网卡
* Input         : None
* Output        : None
* Return        : None
*********************************************************************************************************
*/
#include  "lwip/prot/etharp.h"
struct netif * LWIP_ARP_FILTER_NETIF_FN(struct pbuf *p, struct netif *netifIn, u16_t type)
{struct netif *netif = NULL;struct etharp_hdr *hdr = NULL;struct ip_hdr *iphdr = NULL;ip_addr_t dest/*, src*/;switch (type){/*ARP*/case	0x0806:hdr = (struct etharp_hdr *)((unsigned char*)p->payload + 14);memcpy(&dest, &(hdr->dipaddr), sizeof(ip4_addr_t));//memcpy(&src, &hdr->sipaddr, sizeof (ip4_addr_t));for (netif = netif_list; netif != NULL; netif = netif->next){if (netif_is_up(netif)){if (ip4_addr_cmp(&dest,&(netif->ip_addr))){break;}}}break;/*IP*/case	0x0800:iphdr = (struct ip_hdr *) ((unsigned char*)p->payload + 14);ip_addr_copy_from_ip4(dest, iphdr->dest);//ip_addr_copy_from_ip4(src, iphdr->src);for (netif = netif_list; netif != NULL; netif = netif->next){if (netif_is_up(netif)){if (ip4_addr_cmp(&dest, &(netif->ip_addr))){break;}}}break;default:netif = netif_list;break;}netifIn = netif;if(netif==NULL){pbuf_free(p);}return netif;}

根据ip去匹配netif,arp需要单独处理,因为ip通信首先都要发送arp去找物理地址,不加这个arp处理,会出现你ping不通ip。所以如果知道物理地址,不加这个arp处理也可以,直接自己填mac即可,加到你自己的静态arp表中。

大家注意:

这个一定要加上,我刚开始没加,结果刚开始通,运行一段时间导致不通了,就是因为这里没释放申请的内存,导致无法处理新的数据

4.3、增加多ip的设置

	//开始虚拟多ip--1IP4_ADDR(&ipaddr_v[1], 192,168,20,48);IP4_ADDR(&netmask_v[1], 255,255,255,0);IP4_ADDR(&gw_v[1], 192, 168, 20,1);netif_add(&g_netif_v[1], &ipaddr_v[1], &netmask_v[1], &gw_v[1], NULL, &ethernetif_init, &tcpip_input);	//网卡初始化和网卡输入netif_set_up(&g_netif_v[1]);//开始虚拟多ip--2IP4_ADDR(&ipaddr_v[2], 192,168,30,48);IP4_ADDR(&netmask_v[2], 255,255,255,0);IP4_ADDR(&gw_v[2], 192, 168, 30,1);netif_add(&g_netif_v[2], &ipaddr_v[2], &netmask_v[2], &gw_v[2], NULL, &ethernetif_init, &tcpip_input);	//网卡初始化和网卡输入netif_set_up(&g_netif_v[2]);

4.4、然后运行测试,OK

5、测试结果

刚开始测试结果是这样,我没在意,以为是硬件还是那里问题,ping移植有超时,或者卡顿较大

有时,还会出现几十上百ms的延迟,特别是多个电脑同时ping时。

6、ping超时,卡顿较大原因

1> 原来多个neif_add时:

会每次都初始化网卡,这里网卡在初始化时,会创建解析网络中断数据包的任务,所以存在多个任务去读网卡数据,造成数据的竞争,从而导致可能出现超时,卡顿较大

2> 我们只有一个网卡,所以只需初始化1次解析网络中断数据包的任务

改了之后就OK了

像下面这篇文章这样:

http://www.hrbkazy.com/news/42786.html

相关文章:

  • 国家企业信用信息查询官网系统百度广告优化师
  • 做食品那些网站好seo教程排名第一
  • 万达网站建设seo快速推广窍门大公开
  • 有做装修效果图赚钱的网站吗广告免费发布信息
  • 网站建设多长时间网站代运营价格
  • 广州做网站那家好口碑营销渠道
  • 网站建设厌倦微信营销平台哪个好
  • wamp建设网站大致步骤公司网站推广
  • 网站开发 高级认证搜狗优化排名
  • 淄博做网站推广哪家好广告联盟平台自动赚钱
  • 网站内容被攻击该怎么做seo优化排名软件
  • 做设计一般用什么素材网站软文新闻发稿平台
  • 如何验证网站济南网站优化排名
  • 网站品牌词如何优化长沙seo计费管理
  • 外贸网站建设注意今天重大新闻事件
  • 太湖网站建设帮平台做推广怎么赚钱
  • 建筑网站网页设计google搜索首页
  • 武汉网站维护制作免费b站推广入口2023
  • 武汉模板网站制作seo页面代码优化
  • 网站界面可以做版权吗自动推广工具
  • 编程除了做网站还能干什么怎么样建网站
  • 网站建设这一行业怎样青岛做网站的公司哪家好
  • 北京网站制作公司兴田德润在那里运营和营销是一回事吗
  • java网站项目可做随州seo
  • 专业网站设计公司排行榜网店运营入门基础知识
  • 可以做内容的网站站长平台官网
  • 济南大型网站设计公司seo站长教程
  • 我做的网站在手机里滑动怎么这里卡软文文案范文
  • 顺德网站建设基本流程app优化建议
  • 济南做网站比较好的公司百度竞价排名广告定价