欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

lwip如何重新设置ip

更新时间: 2014-01-05 03:19:26 责任编辑: Author_N1

 

LWIP怎么重新设置ip
我的板子是作为服务器的程序,移植的lwip 我想能够在程序运行过程中重新修改服务器自身的ip地址,可是试了几次还是不行,首先我直接把程序中的  IP4_ADDR(&ipaddr, 192, 168, 1, 18);  //设置网络接口的ip地址
  IP4_ADDR(&netmask, 255, 255, 255, 0); //子网掩码
  IP4_ADDR(&gw, 192, 168, 1, 1); //网关
IP改了,然后 执行tcp_close(iris_pcb);
然后再执行LwIP_Init();
               CMD_init();
结果作为client的PC根本就没办法再连上作为服务器的板子了(不管是新设的ip还是以前老的IP)。请各位大虾指点迷津 O(∩_∩)O谢谢
下面是两个函数的具体代码:
void LwIP_Init( void )
{
  struct ip_addr ipaddr;
  struct ip_addr netmask;
  struct ip_addr gw;

   /*调用LWIP初始化函数,
   初始化网络接口结构体链表、内存池、pbuf结构体*/
   lwip_init();
  
#if LWIP_DHCP     //若使用DHCP协议
  ipaddr.addr = 0;
  netmask.addr = 0;
  gw.addr = 0; 
#else //
/* //by iris 2013.6.6 //
  IP4_ADDR(&ipaddr, 192, 168, 0, 18);   //设置网络接口的ip地址
  IP4_ADDR(&netmask, 255, 255, 255, 0); //子网掩码
  IP4_ADDR(&gw, 192, 168, 0, 1); //网关
*/ //by iris 2013.6.6 //
  IP4_ADDR(&ipaddr, 192, 168, 1, 18);   //设置网络接口的ip地址
  IP4_ADDR(&netmask, 255, 255, 255, 0); //子网掩码
  IP4_ADDR(&gw, 192, 168, 1, 1); //网关


#endif
   
  /*初始化enc28j60与LWIP的接口,参数为网络接口结构体、ip地址、
  子网掩码、网关、网卡信息指针、初始化函数、输入函数*/
  netif_add(&enc28j60, &ipaddr, &netmask, &gw, NULL, &ethernetif_init, &ethernet_input);
 
  /*把enc28j60设置为默认网卡 .*/
  netif_set_default(&enc28j60);


#if LWIP_DHCP     //若使用了DHCP
  /*  Creates a new DHCP client for this interface on the first call.
  Note: you must call dhcp_fine_tmr() and dhcp_coarse_tmr() at
  the predefined regular intervals after starting the client.
  You can peek in the netif->dhcp struct for the actual DHCP status.*/
  dhcp_start(&enc28j60);    //启动DHCP
#endif

  /*  When the netif is fully configured this function must be called.*/
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:19:26
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20777/
本文WWW.DOC100.NET DOC100.NET版权所有。