You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Socket编程中设备重连WiFi后IP变更致通信失效,如何固定IP?

如何让设备连接同一WiFi时使用固定IP解决Socket通信问题

嘿,这个问题我碰到过好多次了——确实,DHCP自动分配IP在Socket通信场景里真的太坑了,尤其是设备频繁断连重连的时候,旧IP失效直接导致通信卡壳。别担心,有几种靠谱的方法能让设备每次连同一个WiFi都用固定IP,我给你拆解一下:

方法一:在路由器端设置静态DHCP绑定(最推荐)

这种方法不用改设备的任何设置,把绑定规则放在路由器上,一劳永逸:

  • 先找到设备的MAC地址
    • Windows:打开命令提示符,输入ipconfig /all,找对应网络适配器的「物理地址」
    • 安卓:在WiFi设置里长按已连接的接入点,选「查看网络详情」就能看到MAC地址
    • iOS:打开「设置-通用-关于本机」,找到「WiFi地址」
  • 登录路由器管理后台:在浏览器输入路由器的管理IP(一般是192.168.1.1192.168.0.1,具体看路由器底部的标签),输入管理员账号密码
  • 找到「静态DHCP」「地址保留」或「IP绑定」选项(不同品牌路由器叫法略有不同,比如小米叫「静态IP分配」,TP-Link叫「地址保留」)
  • 把设备的MAC地址和你想要固定的IP地址(比如192.168.1.100)绑定,保存设置即可。之后不管设备断连多少次,路由器都会给它分配这个固定IP

方法二:在设备端手动设置静态IP

如果没法修改路由器设置,也可以直接在设备上手动指定静态IP:

  • Windows:打开「网络和共享中心」,找到当前WiFi连接的「属性」,双击「Internet协议版本4 (TCP/IPv4)」,选择「使用下面的IP地址」,填入固定IP(要在路由器的DHCP地址池范围内,比如192.168.1.100)、子网掩码(一般是255.255.255.0)、网关(路由器的管理IP),DNS可以填路由器IP或公共DNS(比如8.8.8.8
  • 安卓:在WiFi列表里长按你的接入点,选「修改网络」,勾选「显示高级选项」,把IP设置改成「静态」,然后填入对应的IP、网关、DNS信息
  • iOS:打开「设置-WiFi」,点击已连接网络的感叹号,选择「配置IP」为「手动」,输入固定IP、子网掩码、网关和DNS

注意事项

  • 固定IP要避开路由器DHCP自动分配的范围,比如路由器DHCP是从192.168.1.10192.168.1.50,那你选192.168.1.100就不会和其他自动分配的IP冲突
  • 如果是多设备间的Socket通信,最好给每个设备都分配固定IP,这样互相访问都不会出问题
  • 要是你不想用固定IP,也可以试试本地DNS服务(比如Bonjour)或者NetBIOS名称来替代IP访问,但固定IP是解决这个Socket通信问题最直接、最稳定的方案

内容的提问来源于stack exchange,提问作者amir kam

火山引擎 最新活动