[求助] 请教各位懂LWIP的大侠,关于指定IP设置的困惑。。。

zqzq501311   2011-11-16 09:39 楼主

 

我这两天在利用fengzhang2002分享的程序代码例子学习lwIP,我现在遇到的问题是在例子代码中,主机的IP地址是网络系统分配的,而不是自己设置。我现在想如何修改程序,自己设置IP地址。
在例子中,
int netconn_bind(struct netconn *conn, struct ip_addr *addr, unsigned short port) 函数说明中,讲的是如果addr参数为NULL,那么IP由网络系统确定。

我进入函数内部,发现设置Ip地址不是自己想象的那么简单,在这里请教,如何能搞定这个? 拜谢 !!!

有目的的学习是最有效的学习!

回复评论 (9)

求教各位,先谢谢了啊!
有目的的学习是最有效的学习!
点赞  2011-11-16 10:32
静态和动态。
静态就是自己写一个,就像给485写个地址差不多。
动态的就是DHCP,设定为动态的就行了,协议里的不要管了,只管用参数就行了。
点赞  2011-11-16 10:37

回复 板凳 o0pingu0o 的帖子

多谢解答。我的意思就是使用静态的。但是我不知道具体该调用哪些个函数来指定,继续求教,谢谢!
有目的的学习是最有效的学习!
点赞  2011-11-16 10:56
1..lwIPInit(pucMACArray, 0, 0, 0, IPADDR_USE_DHCP);   DHCP的
2..lwIPInit(pucMACArray, 0xC0A80164, 0xffffff00, 0xC0A80101, IPADDR_USE_STATIC);  静态的  MAC,IP,GATE,MASK,动/静
点赞  2011-11-16 15:25

回复 5楼 o0pingu0o 的帖子

谢谢!
这个函数我尝试过,但会出现错误,错误提示的意思是在函数中IP,MASK等参数格式是无符号整形,而函数定义的这三个参数格式是struct ip_addr 的结构体。 而我未能在其他地方找到该结构体的定义。
还希望您还能给我多一些具体提示。十分感谢!
有目的的学习是最有效的学习!
点赞  2011-11-16 17:35
办公室不能上网,只能靠手机,很纠结。
有目的的学习是最有效的学习!
点赞  2011-11-16 17:58

回复 7楼 zqzq501311 的帖子

lwIPInit函数的参数要求是无符号整形数阿!5楼整正解!只是MAC地址要求十一char数组存储,所以要将长整形的各个字节分开存储!
点赞  2011-11-17 10:03
include\ipv4\lwip\ip_addr.h

PACK_STRUCT_BEGIN
struct ip_addr {
  PACK_STRUCT_FIELD(u32_t addr);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END

如果设置一个 sturct ip_addr 变量的话,下面是一种方式,注意IP地址的分隔符是“逗号”
struct ip_addr;
IP4_ADDR(&ip_addr,192,168,0,33);
点赞  2011-11-17 10:39

回复 9楼 warcraftiii 的帖子

十分感谢,我尝试一下!多谢各位了!
有目的的学习是最有效的学习!
点赞  2011-11-17 19:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复