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

相关推荐
渡我白衣9 小时前
Reactor与多Reactor设计:epoll实战
linux·网络·人工智能·网络协议·tcp/ip·信息与通信·linux网络编程
灋✘逞_兇9 小时前
Protobuf的RPC序列化和调用原理
网络·网络协议·rpc
小笔学长9 小时前
WebSocket 协议:实时双向通信
网络协议·websocket协议·前端后端开发·实时应用实战·websocket性能优化
不吃香菜5679 小时前
WebSocket 超细致完整用法讲解(含原理 + 前端 + 后端 + 实战案例 + 避坑)
前端·网络·websocket·网络协议
ZeroNews内网穿透9 小时前
轻量级自托管Git服务:Gitea私有化部署与公网访问
服务器·网络·数据库·git·gitea
FreeBuf_9 小时前
RondoDox僵尸网络利用高危React2Shell漏洞劫持IoT设备与Web服务器
前端·网络·物联网
漏刻有时9 小时前
微信小程序学习实录13:网络PDF文件的下载、本地缓存、预览、保存及主动转发
网络·学习·微信小程序
不会玩电脑的Xin.9 小时前
计算机网络
网络·计算机网络
Gofarlic_oms19 小时前
Kisssoft许可证服务器高可用性(HA)集群配置方案
运维·服务器·网络·安全·需求分析·devops
网硕互联的小客服9 小时前
服务器平均响应时间和数据包大小有什么关系?
运维·服务器·网络