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

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

相关推荐
脑神13 小时前
C/C++语言编译器
c语言
帐篷Li13 小时前
创建Controller HTTP测试脚本
网络·网络协议·http
wanhengidc13 小时前
服务器如何防范爬虫攻击?
运维·服务器·网络·爬虫·游戏·智能手机
捞的不谈~13 小时前
LUCID相机(HTR003S-001)更改IP地址
网络·网络协议·tcp/ip
mobai713 小时前
使用pyang将yang模型转换为xml
xml·运维·服务器
老张的张Z13 小时前
CISSP 域4知识点 网络组件安全
网络·安全
TG_yunshuguoji13 小时前
腾讯云代理商:腾讯云部署OpenClaw 如何接入自定义大模型?
服务器·云计算·腾讯云·openclaw
洛菡夕13 小时前
LVS+Keepalived高可用群集
运维·服务器·lvs
枕布响丸辣13 小时前
LVS+Keepalived 高可用集群搭建与实战指南
网络
San30.13 小时前
前端进阶:从浏览器渲染原理到网络请求全链路解析
前端·网络·网络请求·浏览器渲染机制