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

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

相关推荐
说不得明天20 小时前
网络管理:AutoarNM部分
c语言·网络·mcu·汽车·autosar
北京智和信通20 小时前
智和信通助力某信息工程大学实现校园全域运维监控
运维·服务器·网络监控·网络管理软件·网管软件·网管运维·网络管理系统
xhbh66620 小时前
无公网IP环境下的宽带端口映射:80km穿云箭部署与性能测试
网络·智能路由器
lularible20 小时前
PTP协议精讲(4.4):从时钟程序实现——时间的“追随者“
网络·网络协议·开源·嵌入式·ptp
東隅已逝,桑榆非晚20 小时前
深⼊理解指针(4)
c语言·笔记
Fanfanaas20 小时前
Linux 系统编程 文件篇 (一)
linux·运维·服务器·c++·学习
小辰记事本20 小时前
RDMA:AI算力集群的“网络命脉”
网络·人工智能·网络协议·rdma
缪懿20 小时前
javaEE:网络编程基础
java·网络·java-ee
七牛云行业应用20 小时前
MCP 服务器本地部署实战【2026】:Python/Node.js 搭建 + Claude/Cursor/TRAE
服务器·python·node.js
孬甭_20 小时前
顺序表详解
c语言·数据结构