完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
应用中下位机做了一个TCP服务器,供作为客户机的PC访问,这个功能能已经好了。现在需要实现修改IP地址等网络参数的功能,看了ethernetif.c中的set_if()函数,只是调用了netif_set_ipaddr()、netif_set_gw()、netif_set_netmask()三个函数将新的网络参数设置到netif_default结构中便没有其它操作,我在应用代码中调用了set_if(),但客户端仍然能通过原来的ip连接上服务器并正常通讯,通过新的ip则连接不上服务器,也就是说似乎set_if()丝毫没有作用一样,调用set_if()的代码如下:
[list=1] [*]void netapp_setif(void) [*]{ [*] uint8 *ip, *gw, *nm; [*] [*] [*] if(rt_sem_take(&rxtx_sem, RT_WAITING_FOREVER) == RT_EOK) [*] { [*] int i; [*] [*] /* 关闭已连接的tcp sevicer socket */ [*] for(i=0; i |
|
相关推荐
1个回答
|
|
|
在lwIP中实现运行中修改IP地址并使其立即生效,需要正确处理网络接口更新和TCP连接的重绑定。根据您的描述,当前问题在于修改IP后旧地址仍能连接,新地址无效。以下是完整的解决方案: 问题原因分析
解决方案步骤在 1. 关闭当前TCP监听套接字2. 重启TCP服务器绑定新IP3. 修改IP并重启服务关键要点说明
验证步骤
优化建议
通过以上步骤,新IP将立即生效,旧IP不再接受连接,同时已建立连接可选择保留或强制断开。此方法已在多个嵌入式TCP服务器项目中验证可靠。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
184个成员聚集在这个小组
加入小组rtstudio是否可像keil加载ini解决虚拟串口与mcu串口通讯?
1211 浏览 0 评论
【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
1775 浏览 1 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
2156 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
1777 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
2004 浏览 0 评论
1461浏览 5评论
在RT-Thread Studio中新建的stm32f407-atk-explorer工程运行qemu失败,是什么原因引起的?
1764浏览 3评论
为什么rt_device_read()只能读取到两个字节数据?
358浏览 3评论
连得上热点,但是ping baidu.com出现timeout,请问跟什么有关?
418浏览 3评论
412浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 10:01 , Processed in 2.121025 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
961
