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

相关推荐
ze^011 小时前
【软考信息安全】第2章 网络攻击原理与常用方法
网络·web安全·网络安全
这个DBA有点耶12 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
arbboter12 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
消失的旧时光-194314 小时前
第一篇:Ktor Client 到底是什么?从 Retrofit 迁移理解 Ktor 网络请求架构
网络·架构·retrofit·ktor·dsl
数据知道14 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
江畔柳前堤15 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
LabVIEW开发15 小时前
LabVIEW 通过以太网控制 Yokogawa WT3000 功率分析仪:tmctl.dll 与原始套接字方案
网络·labview·labview知识·labview功能·labview程序
xiaoxiangsiyan16 小时前
企业日常运维高频应用服务全解
运维·网络·云原生·容器·dns
那年窗外下的雪.16 小时前
AIDC 学习日志 Day 3:OSPF Underlay 实验、故障排查与深入解析
服务器·网络·php
星恒讯工业路由器16 小时前
IP地址冲突:成因、影响与工业网络中的应对策略
网络·信息与通信·ip地址冲突·工业网络·网络故障排查·ip-mac绑定