bind返回失败(ctrl+c)结束后不能再次加载

问题现象(VxWorks):

在测试的时候发现使用ctrl+c打断程序后再次调用bind绑定失败

错误返回 0x30

问题分析:

1、程序没有开启端口复用。

2、程序在使用ctrl+c打断后 vxWorks的打断和linux不相同,并没有清除底层的端口,和socket状态。

解决办法:

1、加上IP复用:

复制代码
     if (setsockopt(server_socket, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) < 0)                     {
         perror("setsockopt failed");
         close(server_socket);
         return ;
     }

2、加上端口复用

复制代码
if (setsockopt(server_socket, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof(optval)) < 0) {
         perror("setsockopt failed");
         close(server_socket);
         return ;
     }

3、取消使用ctrl+c打断的方式,使用任务管理

1、主任务创建 子任务

2、子任务创建socket

3、预留接口关闭任务和socket

解决现象,解决异常,功能实现

相关推荐
广州灵眸科技有限公司8 小时前
3Tops NPU + 4核高性能架构:灵眸科技EASY-EAI-PI2开发板,为边缘AI开启“easy模式”
服务器·前端·人工智能·python·科技·深度学习·架构
梁辰兴8 小时前
计算机网络基础:具有集中目录服务器的 P2P 工作方式
服务器·网络·计算机网络·计算机·p2p·计算机网络基础·梁辰兴
艾莉丝努力练剑8 小时前
【Linux网络】网络层IP协议(二):网段划分
linux·运维·服务器·网络·tcp/ip·udp
InHand云飞小白8 小时前
告别有线宽带束缚!5G Wi-Fi 6 CPE赋能企业网络新范式
网络·5g·网络运维·5g路由器·连锁门店·5gcpe·商业联网
艾莉丝努力练剑8 小时前
【Linux网络】网络层IP协议(三):网段划分(下)
linux·运维·服务器·网络·tcp/ip
ZHW_AI课题组8 小时前
使用ResNet网络实现猫狗数据集分类
网络·分类·数据挖掘
十月的皮皮8 小时前
C语言学习笔记20260609-字符串反转两种实现方法
c语言·笔记·学习
霸道流氓气质8 小时前
SSL Socket 通信与本地 Mock Server 实践指南
网络·网络协议·ssl
上海云盾安全满满8 小时前
服务器CPU跑满的原因及解决办法
运维·服务器
CodeSheep程序羊8 小时前
宇树科技,即将上市!
java·c语言·c++·人工智能·python·科技·硬件工程