UDP服务器端bind失败问题

本人使用microchip芯片开发,使用UDP虚拟机通讯,经常提示bind失败,返回-1,尝试了以前UDP作为客户端使用时正常,故硬件链路没问题。

一、可能有几个原因:

  1. 端口实际上被占用 :最明显的原因是端口真的被另一个应用程序占用了。你可以使用 netstat -tulnplsof -i UDP 命令来检查哪些端口正在被使用。

  2. 防火墙规则:某些防火墙规则可能会阻止你绑定端口。你需要检查防火墙设置,确保你有权限绑定端口。

  3. 网络配置:在网络配置中可能存在一些限制,比如地址保留或者路由规则,这可能导致你不能绑定端口。

  4. 软件冲突:某些软件可能在后台运行,它们可能在你不知道的情况下占用了端口。

  5. 操作系统限制:有些操作系统可能有限制,只允许root用户绑定到低端口(小于1024)。

  6. 代码逻辑:你的代码可能存在逻辑问题,导致它总是尝试绑定到同一个端口,即使你改变了端口参数。

  7. 残留的套接字:之前的运行可能留下了残留的套接字。你可以尝试重启计算机,看看问题是否解决。

  8. 网络驱动或硬件问题:在嵌入式系统中,这可能是由于网络驱动或硬件问题。你可以尝试更新驱动或者检查硬件文档。

二、排查

1、防火墙检查,未启动;

2、netstat -tulnp查看确实有该端口

3、其他几个3.4.5.6.8不太可能;udp客户端之前在该板子上成功;

4、残留套接字,重启芯片OK

最后发现是杀死进程后,socket没释放导致,主动释放下一次就可以绑定成功

怀疑:系统可能在进程结束后,等待一段时间才释放,所以还是要主动关闭socket

相关推荐
独行soc17 小时前
2026年渗透测试面试题总结-5(题目+回答)
android·网络·python·安全·web安全·渗透测试
希赛网17 小时前
网工面试:常问技术问题汇总(3)
服务器·前端·网络·网络工程师·ospf·网工面试·技术面
进阶小白猿17 小时前
Java技术八股学习Day23
java·网络·学习
华硕之声17 小时前
试着像猫一样生活
网络·数据·华硕
上海云盾安全满满17 小时前
入侵防御系统与入侵检测系统的核心区别
网络·安全·web安全
中议视控17 小时前
网络中央控制系统主机与音频综合管理平台的对接
网络·音视频
网宿安全演武实验室17 小时前
Linux Rootkit 手法解析(上):用户态的“隐身术”与检测思路
linux·网络·安全·apt·攻防对抗
徐同保18 小时前
OnlyOffice HTTPS 代理配置总结
redis·网络协议·https
zzZ··*18 小时前
自动登录上海大学校园
python·网络协议·selenium
她说可以呀18 小时前
网络基础初识
java·网络·java-ee