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

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

相关推荐
zzzzzz3103 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
LDR0066 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
小宇宙Zz6 天前
Maven依赖冲突
java·服务器·maven
Luminous.6 天前
C语言--day30
c语言·开发语言
玖玥拾6 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
网络研究院6 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
謓泽6 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
treesforest6 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全