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

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

相关推荐
代码熬夜敲Q9 小时前
网络工程相关
linux·服务器·网络
开压路机9 小时前
基础IO
linux·运维·服务器
三品吉他手会点灯9 小时前
C语言学习笔记 - 46.运算符和表达式 - 运算符4 - 对初学运算符的一些建议
c语言·开发语言·笔记·学习
呉師傅9 小时前
EPSON爱普生 L3118打印头【喷头】清洗方法
运维·服务器·网络·学习·电脑
酿情师10 小时前
区块链网络与跨链操作03:区块链的分叉
网络·centos·区块链
TheRouter10 小时前
LLM 推理成本工程:从 Token 计量到分层路由的生产降本实践
网络·ai
小鸡毛程序员10 小时前
从零搭建 Linux 开发服务器:VMware NAT 静态网络 + Docker + MySQL + Redis + 云服务器迁移
linux·服务器·网络
xlq2232210 小时前
64.TCP 可靠性与效率
网络·网络协议·tcp/ip
24zhgjx-lxq10 小时前
BGP路由黑洞
网络·安全·华为·智能路由器·hcip·ensp
RSTJ_162510 小时前
PYTHON+AI LLM DAY SIXTY-SIX
服务器·开发语言·python