Linux Server 终止后立即重启报错 bind error: Address already in use
-
先启动Server,再启动Client,然后使用Ctrl+C关闭Server,马上再运行Server,会得到以下结果:
bind error: Address already in use -
这是因为,虽然Server的应用程序终止了,但TCP协议层的连接并没有完全断开,因此Server不能再监听同样的端口
-
使用netstat命令可以查看,Server终止时,Socket描述符会自动关闭并发FIN段给Client,Client收到FIN后处于CLOSE_WAIT状态,但是Client并有终止,也没有关闭Socket描述符,因此不会发FIN给Server,最终导致Server的TCP连接处于FIN_WAIT2状态
-
我们再使用Ctrl+C将Client终止掉,Client终止时自动关闭Socket描述符,Server的TCP连接收到Client发的FIN段后处于TIME_WAIT状态;TCP协议规定,主动关闭连接的一方要处于TIME_WAIT状态,等待两个MSL的时间后才能回到CLOSED状态,MSL在RFC1122中规定为两分钟,但各操作系统的实现不同,Linux上一般为半分钟
-
由于我们先终止了Server,所以Server是主动关闭连接的一方,在TIME_WAIT期间仍然不能再次监听同样的Server端口
-
在Server的TCP连接没有完全断开之前不允许重新监听是不合理的,因为前后Server占用的是同一个端口,但不一定是同一个IP地址
-
可以通过setsockopt()设置Socket描述符的选项SO_REUSEADDR为1,表示允许创建端口号相同但IP地址不同的多个Socket描述符
相关文章:
Linux Server 终止后立即重启报错 bind error: Address already in use
先启动Server,再启动Client,然后使用CtrlC关闭Server,马上再运行Server,会得到以下结果: bind error: Address already in use这是因为,虽然Server的应用程序终止了,但TCP协议层的连接并没有完全…...
【Python 千题 —— 基础篇】分解数据
题目描述 题目描述 编写一个程序,输入一个类似 “233,234,235” 格式的字符串,然后提取字符串中的数字,将这些数字存储在列表中,并输出该列表。在这里,我们使用 eval 函数来解析字符串中的数字。 输入描述 输入一个…...
【C++】C++11新特性之右值引用与移动语义
文章目录 一、左值与左值引用二、右值与右值引用三、 左值引用与右值引用比较四、右值引用使用场景和意义1.左值引用的短板2.移动构造和移动赋值3.STL中右值引用的使用 五、万能引用与完美转发1.万能引用2.完美转发 一、左值与左值引用 在C11之前,我们把数据分为常…...
家庭燃气表微信抄表识别系统
1.背景需求 目前家里燃气度数的读数上报,每个月在社区微信群里面将手机拍摄的燃气表读数截图(加住址信息水印),发到群里给抄表员。 2.总体设计 设计目标 功能一:手机上随时可以远程采集读数图片(自动加住…...
EF执行迁移时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的
ef在执行时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。 只需要在数据库链接字符串后增加EncryptTrue;TrustServerCertificateTrue;即可 再次执行...
视频标注的两个主要方法
视频标注技术 单一图像法 在自动化工具面世之前,视频标注效率不高。各公司使用单一图像法提取视频中的所有帧,然后使用标准图像标注技术将它们作为图像来标注。在30fps的视频中,每分钟有1800帧。这个过程没有利用视频标注的优势,…...
学成在线第一天-项目介绍、项目的搭建、开发流程以及相关面试题
目录 一、项目介绍 二、项目搭建 三、开发流程 四、相关面试题 五、总结 一、项目介绍 背景 业务 技术 背景:首先是整个这个行业的背景 然后基于这个行业的背景引出当前项目的背景 业务:功能模块 功能业务流程 技术:整体架构&am…...
《数据结构与算法之美》读书笔记1
Java的学习 方法参数多态(向上和向下转型) 向上转型: class Text{public static void main(String[] args) {Animals people1 new NiuMa();people1.eat1();//调用继承后公共部分的方法,没重写调用没重写的,重写了调…...
接口测试经验合集
一 、接口测试常见问题 前景提要:由于本人测试小白,可能所遇问题都较为基础,测试小白可以参考 1.1 postman会报 connect ECONNREFUSED jemeter会报 org.apache.http.conn.HttpHostConnectException: Connect tofailed: Connection refus…...
Leetcode—2331.计算布尔二叉树的值【简单】
2023每日刷题(六) Leetcode—2331.计算布尔二叉树的值 递归实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool evaluateTree(struct TreeNod…...
Java面试(基础篇)——解构Java常见的基础面试题 结合Java源码分析
fail-safe 和fail-fast机制 Fail-fast:快速失败 Fail-fast : 表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException 异常,从而导致遍历失败 package …...
Ubuntu 17.10的超震撼声音权限
从GNOME GUADEC 2017开发者大会归来之后,Canonical的Didier Roche就开始了一个日更博客系列,主要讲述即将带来的Ubuntu 17.10(Artful Aardvark)发行版将如何从Unity到GNOME Shell的转变。有趣的是,Ubuntu Unity桌面环境…...
图像信号处理板设计原理图:2-基于6U VPX的双TMS320C6678+Xilinx FPGA K7 XC7K420T的图像信号处理板
综合图像处理硬件平台包括图像信号处理板2块,视频处理板1块,主控板1块,电源板1块,VPX背板1块。 一、板卡概述 图像信号处理板包括2片TI 多核DSP处理器-TMS320C6678,1片Xilinx FPGA XC7K420T-1FFG1156,1片X…...
【数组】移除元素(暴力遍历×双指针√)
一、力扣题目链接 27.移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 你不需要考虑数组中超出新长度后面的元素。 二、思路 要知道数组的元素在内存地址中是连续的,不…...
【笔试题】华为研发工程师编程题
1.汽水瓶 某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。 小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。 数据范围:输入的正整数满足 1≤n≤100 1≤n≤…...
如何转换Corona和Vray材质?cr材质转vr材质的方法
cr材质转vr材质的方法一:使用CG Magic插件,一键转换 CG Magic是一款基于3ds Max深度开发的智能化辅助插件,上千项实用功能,降低渲染时长,节省时间和精力,大幅简化工作流程,助力高效完成创作。 …...
蓝桥每日一题(day 4: 蓝桥592.门牌制作)--模拟--easy
#include <iostream> using namespace std; int main() {int res 0;for(int i 1; i < 2021; i ){int b i;while(b){if (b % 10 2) res ;b / 10;}}cout << res; return 0; }...
leetcode(2)栈
leetcode 155 最小栈 stack相当于栈,先进后出 存储全部栈元素 [-3,2,-1] min_stack,存储栈当前位置最小的元素 [-3,-3,-3] class MinStack:def __init__(self):self.stack []self.min_stack [math.inf]def push(self, x: int) :self.stack.append(x)self.min_sta…...
有什么小程序可以下载视频号的视频?
最近有一些朋友问我,【视频号下载助手】和【视频下载bot】小程序,有什么作用? 首先视频号下载助手是协助用户进行下载的,但由于下载要符合平台规定,我们就将视频下载助手与视频下载bot小程序想结合的模式࿰…...
GDB调试简单介绍
最近和许多同事交流时,发现好多人只是在IDE上debug,但是gdb却一点都不了解;校招新来的同事更是都没听过gdb这个工具,所以在培训时给他们培训了一下;另外好久也没写blog了,刚好把这篇笔记简单分享一下。 0 …...
Mermaid Live Editor:免费在线图表编辑器的完整高效解决方案
Mermaid Live Editor:免费在线图表编辑器的完整高效解决方案 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-…...
别再乱找字体了!Android系统自带的13种字体样式,一次看个明白(附效果对比图)
Android系统字体完全指南:13种原生字体样式与实战应用 每次在Android项目中调整UI字体时,你是否也在反复纠结该选哪种字体?或者干脆直接去网上搜索第三方字体库?其实Android系统本身就内置了13种风格各异的字体家族,足…...
鸿蒙手写板点云识别库,支持识别字母和数字
这是一个基于鸿蒙 ArkTS 开发的手写板点云识别项目,核心是通过采集手写笔迹的点云数据,实现字母与数字的识别功能,是一个轻量化、可扩展的手写交互 Demo。GestureDemoPage.ets手写识别的主页面,负责 UI 交互和流程控制GestureView…...
Halcon实战:用intensity算子5分钟搞定图像区域灰度分析(含Mean和Deviation详解)
Halcon实战:5分钟掌握图像区域灰度分析的核心技巧 在工业质检和缺陷检测领域,快速准确地评估图像区域的灰度特性是每个工程师的必备技能。Halcon作为机器视觉领域的标杆工具,其intensity算子能以惊人的效率完成这项任务——但很多初学者往往止…...
方向向量在游戏开发中如何应用,高数下空间几何到底有什么用处
数学概念程序员应用领域核心作用方向向量计算机图形学、游戏开发、机器人学、计算机视觉、物理引擎描述物体朝向、光线方向、运动方向,是空间变换和计算的基础。空间几何(直线/平面方程)3D建模、碰撞检测、路径规划、增强现实(AR)、虚拟现实(…...
你的 Vue 3 defineAsyncComponent(),VuReact 会编译成什么样的 React?
VuReact 是一个能将 Vue 3 代码编译为标准、可维护 React 代码的工具。今天就带大家直击核心:Vue 中用于异步组件的 defineAsyncComponent() 经过 VuReact 编译后会变成什么样的 React 代码? 前置约定 为避免示例代码冗余导致理解偏差,先明…...
中国信任度再居全球前列,但“信任孤岛“趋势浮现 | 美通社头条
、美通社消息:近日,国际领先的传播咨询机构爱德曼公关联合清华大学国家形象传播研究中心,在华发布了《2026年爱德曼信任度调查中国报告》。今年报告以"筑‘信为桥,跨越孤岛"为主题,聚焦全球社会在经历两极分…...
富集分析结果太杂乱?3个ggplot2技巧让你的气泡图秒变高颜值SCI配图
富集分析结果太杂乱?3个ggplot2技巧让你的气泡图秒变高颜值SCI配图 科研论文中的图表质量直接影响审稿人对研究成果的第一印象。对于生物信息学分析而言,富集分析(如GO、KEGG、GSEA)的结果可视化尤为关键——它不仅需要准确传达数…...
【全网首家】Claude Opus 4.7 vs Opus 4.6 实测对比:7 项测试跑完后,我发现升级最值的是 coding 和 debug
Claude Opus 4.7 vs Opus 4.6 实测对比:7 项测试跑完后,我发现升级最值的是 coding 和 debug 通过 Crazyrouter AI API 网关,对 Claude Opus 4.7 和 Opus 4.6 做了 7 组真实场景测试。不是只看发布文案,也不是只看官方说法&#x…...
微信UI树“隐身”之谜:逆向UIA暴露策略与AI-RPA融合实战
1. 微信UI树“隐身”背后的技术博弈 去年帮客户做微信自动化项目时,突然发现用了几年的pywinauto脚本集体罢工。调试时打开Inspect工具一看,原本密密麻麻的UI树突然变得光秃秃的,就像被施了隐身术。这种变化不是偶然的bug,而是微信…...
