最近在看关于LWIP的应用,做了几个实验,都是周立功的例程,UDP和TCP的都做过了,没问题。
但是关于程序里面的IP地址绑定,一直有个疑惑
下面是宏定义的:
#define My_Mac_ID {0X00,0x14,0x97,0x0F,0x1D,0xE3} //存储以太网控制器的物理地址,即MAC地址
#define IP_MARK_ID {255,255,255,0} //255.255.255.0,子网掩码
#define MY_IP_ID {192,168,1,25} //以太网通信的IP地址
#define MY_GATEWAY_ID {192,168,1,254} //以太网通信的网关地址
但为什么绑定的时候是:
tcp_bind(Clipcb,IP_ADDR_ANY,1026); // 绑定本地IP地址和端口号
udp_bind(UdpPcb,IP_ADDR_ANY,1025); /* 绑定本地IP地址 */
为什么绑定本地IP的时候,用到的都是IP_ADDR_ANY呢?
下面是一些关于 IP_ADDR_ANY的定义:
#define IP_ADDR_ANY ((struct ip_addr *)&ip_addr_any)
const struct ip_addr ip_addr_any = { IP_ADDR_ANY_VALUE };
#define IP_ADDR_ANY_VALUE 0x00000000UL
看来看去,没有看懂,不知道我有没有表述清楚
望高手指点! |