当前位置: 首页 > news >正文

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

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

http://www.lryc.cn/news/487561.html

相关文章:

  • 菜鸟驿站二维码/一维码 取件识别功能
  • 23种设计模式-备忘录(Memento)设计模式
  • 搜维尔科技:Manus遥操作五指机械手专用手套惯性高精度虚拟现实
  • MySql面试题.运维面试题之五
  • 小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现
  • JWT 过期后 自动刷新方案
  • react-amap海量点优化
  • GRU(门控循环单元)详解
  • 【代码随想录|回溯算法排列问题】
  • Azure Kubernetes Service (AKS)资源优化策略
  • R语言 | 宽数据变成一列,保留对应的行名和列名
  • RTSP播放器EasyPlayer.js播放器在webview环境下,PC和安卓能够正常播放,IOS环境下播放器会黑屏无法播放
  • .NET周刊【11月第3期 2024-11-17】
  • c语言数据22数组使用
  • 深入理解TensorFlow中的形状处理函数
  • MySQL数据库3——函数与约束
  • ⾃动化运维利器 Ansible-Jinja2
  • 博客文章怎么设计分类与标签
  • FastDDS之DataSharing
  • 计算机网络在线测试-概述
  • 【MySQL】数据库必考知识点:查询操作全面详解与深度解剖
  • 鲸鱼机器人和乐高机器人的比较
  • 游戏引擎学习第15天
  • 详解模版类pair
  • AI驱动的桌面笔记应用Reor
  • 搜维尔科技:使用sensglove触觉反馈手套进行虚拟拆装操作
  • 深入理解电子邮件安全:SPF、DKIM 和 DMARC 完全指南
  • 【有啥问啥】复习一下什么是NMS(非极大值抑制)?
  • Java-异步方法@Async+自定义分布式锁注解Redission
  • 基本定时器---内/外部时钟中断