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

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

相关推荐
QZ166560951594 分钟前
可视化易用·低误报率·跨区域部署:知源-AI数据分类分级系统在金融行业的落地实践
大数据·网络·安全·网络安全
aixingkong9219 分钟前
UALink 技术白皮书解读
服务器·网络·硬件架构
mklpo1479 分钟前
在 安卓手机 上通过termux运行 gentoo 和 宝塔面板。2026.10.19
linux·运维·服务器
Amumu121381 小时前
Node学习: 网络基础概念 + HTTP模块
网络·node.js
tdtengrun1 小时前
“绿色轮胎安全周”走进校园,让安全与环保理念扎根童心
网络·媒体
TangGeeA2 小时前
命令安全设置
java·服务器·安全
水饺编程2 小时前
第2章:Linux 基础,rm 命令
linux·c语言·汇编
范同学~2 小时前
固定表头+第一列+最后一列
java·服务器·前端
雪落漂泊2 小时前
Linux基础开发工具(三)gcc/g++与make/makefile篇
linux·运维·服务器
夏虫不可与之言冰2 小时前
第三课 点亮 LED 与定时器非阻塞闪烁
c语言·c++·vscode·单片机·嵌入式硬件·物联网