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

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

相关推荐
云边云科技_云网融合15 小时前
AI 时代组网新范式:零信任软件定义组网,让连接更安全更灵活
网络·安全
简单点了15 小时前
全栈编程基础知识7
运维·服务器·网络
学会去珍惜15 小时前
是什么意思c语言
c语言·编程语言·底层开发·面向过程·系统软件
实心儿儿15 小时前
Linux —— 进程控制 - mini shell
linux·运维·服务器
房开民15 小时前
modbus相关学习
网络·学习
程序员黄老师16 小时前
Windows文件移动到Linux上的坑
linux·运维·服务器
mounter62516 小时前
【内核前沿】Linux IPC 迎来大变局?POSIX 消息队列增强、io_uring IPC 与 Bus1 十年回归
linux·运维·服务器·kernel·ipc·io_uring
2603_9547083117 小时前
如何确保微电网标准化架构设计流程的完整性?
网络·人工智能·物联网·架构·系统架构
网络小白不怕黑17 小时前
2.1VMware部署Windows_server_2008_R2
运维·服务器
handler0117 小时前
拒绝权限报错!三分钟掌握 Linux 权限管理
linux·c语言·c++·笔记·学习