1、找到main程序中的LwIP_Init函数,并右键搜索定义(Definition)
2、由于我用的路由器加DHCP服务,所以用crtl + f 查找“LWIP_DHCP”,找到如图所示的函数段。
3、再往下找到诸如“IPaddress = netif.ip_addr.addr;”语句的地方,这句话意思就是将分配好的IP赋值给IPaddress 变量,即表示 LwIP初始化完成,系统已经得到路由器DHCP分配到的IP地址,在后面即可添加客户端定义语句。我的客户端定义是写在“Ehome_init”函数中的。
4、在Ehome_init函数内,同时定义了服务器端与客户端,而且下载到硬件平台都初始化运行成功。IP4_ADDR(&Server_ipaddr,192,168,1,112);为所要连接的服务器地址,即我的 PC地址。tcp_bind(pcb_client, IP_ADDR_ANY, 8091);为绑定客户端socket的端口,为测试方便我绑定了8091端口,其实不绑定也可。tcp_connect(pcb_client, &Server_ipaddr, EHOME_SERVER_PORT, Ehome_Client_Connected)既为客户端连接到服务器函数,其中pcb_client为客户端socket,Server_ipaddr为服务器IP,EHOME_SERVER_PORT为所要连接的服务器端口号,这里为8090(可以直接写数字“8090”),Ehome_Client_Connected为连接成功后调取的函数。
5、在电脑上用TCP&UDP测试工具建立TCP服务器端,端口为8090(单片机程序中设定所要连接到的服务器端口号),然后启动服务器。
6、将前面写好的程序编译连接并下载到单片机内运行,可以看到服务器端自动接受到单片机客户端的连接,并成功接受到信息。