错误:Only one usage of each socket address (protocol/network address/port) is normally permitted.

ollama serve启动报错处理 如果端口被占用,可以通过终止占用进程或修改 Ollama 的端口配置来解决。如果问题仍然存在,可以检查是否有其他 Ollama 实例运行,或者重启系统。确保防火墙或安全软件没有阻止 Ollama 使用端口。通过以上步骤,应该可以解决的错误。如果问题仍然存在,请提供更多详细信息,我会进一步协助你解决问题! 阅读详情
AI摘要

在Windows环境中使用Go语言进行服务器压力测试时,遇到了socket地址复用的问题。文章深入分析了TCP连接数量受TCB数量、MaxUserPort、MaxHashTableSize和MaxFreeTcbs等注册表参数的影响,以及TCP连接time_wait状态对TCB释放的影响。

说明

在windows中使用go实现了一个服务器压力测试工具,使用的TCP协议,在调试期间,出现问题如下

Only one usage of each socket address (protocol/network address/por
t) is normally permitted.

从字面上来看是告诉我们是socket被复用了。在网上查了原因之后发现是套接字用完了,也就是同时建立的TCP连接量超过了系统的限制。但是经过验证,发现其实并不是因为同时建立的TCP连接过多造成的。

问题分析

在我的测试工具中,我开启了20个协程去建立TCP连接,发送数据包,再关闭连接,并重复这个过程,也就是说同时也就最多建立20个TCP连接,远远小于windows中的tcp同时建立连接数的限制,并不可能出现TCP连接建立量超过系统限制的原因。那么又会是什么原因呢?
原来影响TCP连接建立数量的因素不止是最大建立连接数决定的。还有一系列的参数影响TCP连接的建立。在windows的注册表中的HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters中,
在这里插入图片描述

最大TCB 数量

系统为每个TCP 连接分配一个TCP 控制块(TCP control block or TCB),这个控制块用于缓存TCP连接的一些参数(源端口、目的端口、目的ip、序号、应答序号、对方窗口大小、己方窗口大小、tcp状态、tcp输入/输出队列、应用层输出队列、tcp的重传有关变量等),每个TCB需要分配 0.5 KB的pagepool 和 0.5KB 的Non-pagepool,也就说,每个TCP连接会占用 1KB 的系统内存。

系统的最大TCB数量由如下注册表设置决定
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxFreeTcbs = 2000 (Default = RAM dependent, but usual Pro = 1000, Srv=2000)
这里也就表示最大可同时创建两千个TCP连接。
但是通过调整注册表中的以下参数可以改变这个值。

MaxUserPort = 65534 (Decimal) 
MaxHashTableSize = 65536 (Decimal) 
MaxFreeTcbs = 16000 (Decimal) 

把这几项都调到最大。即可把TCP同时建立数扩大到16000。此时确实发现,这个报错会出现在当tcp连接建立到16000左右的时候。但是依然不是同时建立这么多连接,每次建立完都有关闭tcp。

猜想

tcb控制块并不是断开TCP连接后直接释放,而是要等待TCP连接time_wait时间之后再释放。

验证

重启服务器,再次使用测试工具进行测试。
在这里插入图片描述

如图所示,当短时间内建立TCP连接数到16000左右的时候再次出现问题。
关闭测试工具,等待1分钟后,启动测试工具。依然报错。
关闭测试工具,在等待1分钟,也就是过了TCP默认的time_wait时间,再启动测试工具,不再报错又可以重新建立连接。
验证tcb控制块并不是断开TCP连接后直接释放,而是要等待TCP连接time_wait时间之后再释放。

C# Socket编程从入门到实战:解决粘包、高并发与工业通讯 网络编程是软件开发的基础,其核心在于理解数据如何在计算机间传输。TCP/IP协议栈定义了网络通信的底层原理,而Socket作为操作系统提供的网络编程接口,是这一原理的具体实现。掌握Socket技术价值在于突破高级网络库的限制,实现对通信流程的精细控制,从而构建高性能、高可靠性的网络应用。在工业控制、物联网、游戏服务端等应用场景中,直接操作Socket能够满足自定义协议、设备直连等特殊需求。本文聚焦C#中的Socket编程,深入探讨粘包拆包、异步高并发等核心问题,并结合连接超时、端口占用等常见错误,提供实战排 阅读详情

相关推荐

Unity网络通信开发:从Socket底层原理到Mirror框架实战

网络通信是实时多人应用的核心基础,其本质在于如何在不可靠的网络环境中实现可靠、高效的数据交换。理解TCP/UDP协议、连接管理、数据序列化等底层原理,是构建稳定网络应用的基石。在Unity开发中,原生Socket提供了对网络字节流的绝对控制,适合深入学习粘包处理、心跳机制等关键技术细节,但开发效率较低。而Mirror这类高层网络框架,通过封装网络状态同步、远程过程调用(RPC)等复杂逻辑,能极大提升开发效率和项目健壮性。本文聚焦于多人聊天室这一典型应用场景,详细剖析了从原生Socket实现到Mirror框架

weixin_30706691的博客 409

listen tcp :8080: bind: Only one usage of each socket address (protocol/network address/port) is nor

最近用beego,运行时有时会出现错误: ListenAndServe: listen tcp :8080: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted 通常每个套接字地址(协议/网络地址/端口)只允许使用一次 经过搜索发现这个提示是在端口冲突的...

hanhx1993的博客 3万+

AList启动报错,排查端口占用的原因 bind: Only one usage of each socket address (protocol/network address/port) is n

通过一步步排查,我最终发现是因为其他程序占用了 AList 默认的端口。修改配置文件后,问题顺利解决。Tip:以后遇到类似端口占用的问题,可以用类似的方法排查其他服务,学会分析日志是关键!希望这篇文章对你有帮助,如果还有其他问题,欢迎在评论区交流~

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 763

C#报错:Only one usage of each socket address (protocol/network address/port) is normally permitted

C# udp通讯,新建UdpClient时报错: Only one usage of each socket address (protocol/network address/port) is normally permitted 代码如下: UdpClient uc = new UdpClient(9001); 第一次调用正常,第二次调用就报错,看上去是本机的9001端口不能两次监听...

小鹰信息技术服务部 2269

【异常】启动Gin的时候,出现错误提示:bind: Only one usage of each socket address...

端口冲突导致服务启动失败。报错显示8080端口已被占用,解决方案是修改代码中的端口号,如将r.Run(":8080")改为r.Run(":8081")或其他可用端口,然后重新启动服务即可解决该问题。

奶爸的编程之路,也就一周冷个三天 165

C#实现12台RFID一体机TCP集中控制实战

TCP长连接是工业设备通信的基础协议,其核心在于连接管理、帧解析与状态同步。理解Socket底层机制、解决端口复用冲突、规避粘包误读、构建心跳熔断策略,是保障高并发RFID设备稳定轮询的技术关键。本文围绕C#上位机开发场景,详解如何基于原生Socket替代TcpClient,实现十二台RFID一体机的低延迟、高可靠、热插拔式集中管控,覆盖连接池设计、状态机解帧、精准轮询调度及生产级容错等完整链路,适用于考勤系统、产线追溯、智能仓储等物联网边缘控制应用。

weixin_34161083的博客 457

.Net Remoting中Remote Server的Port占用/释放问题

这一问题一般出现在Console application/Windows Service承载Remote Objects时,要求Remote Server指定特定port。IIS在承载Remote Objects并不需要指定特定port,因此一般不会出现SocketException异常信息。 1. 启动承载Remote Objects的Console application,发现指定的port状

软件开发资料汇总 265

Navcat最新版的激活和安装教程(全网最靠谱,最快捷的方式)

现在最新版本navcat已经出到了16.3了,并且新版navcat也支持连接redis和图标等更多样化的功能,但是比较头疼的一件事就是,只能试用14天。那么接下来小编教大家如何用最简单的方式使用最新版navcat16.

weixin_50737119的博客 2万+

go-zero创建api报错 Only one usage fo each socket address (protocol/network address/port) is normally

问题描述: 在尝试启动api服务时报错,error","content":"server.go:251 listen tcp 0.0.0.0:8889: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.: D:\go 练习\book\service\search\api>go run search.go -f etc/search-api.yaml Sta

vivisol的博客 1957

手把手教你用Cesium和RayMarching实现逼真体积云(附完整Shader代码)

本文详细介绍了如何利用Cesium和RayMarching技术实现逼真的体积云效果,包括环境准备、核心逻辑、云层建模和光照增强等关键步骤,并提供了完整的Shader代码。通过噪声函数选型、动态风场模拟和多重散射近似等技术,开发者可以在数字地球可视化项目中创建沉浸式天气效果,显著提升场景的真实感。

weixin_29230649的博客 416

1.安装EMQX服务器

阿里云;EMQX

hfh8130的博客 5311

go语言web开发出错

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34413802的博客 155

C++游戏开发实战:从零构建局域网联机对战系统(附完整代码解析)

本文详细介绍了如何使用C++开发局域网联机对战游戏系统,涵盖从环境搭建到实战代码解析的全过程。重点讲解了Winsock库的应用、Socket通信原理、服务端与客户端开发技巧,以及性能优化和安全防护方案,帮助开发者快速掌握C++游戏开发的核心技术。

weixin_42524945的博客 445

Socket通信原理与实战:从TCP/IP到C#/Python排错指南

Socket是网络编程中连接应用层与传输层的关键抽象。理解其四元组与TCP/IP协议栈的关系,掌握TCP的可靠性机制与UDP的实时性特点,才能在设计服务时做出正确选择。合理配置端口绑定、SO_REUSEADDR、心跳检测及防粘包方案,能显著提升网络服务的稳定性与性能。面对bind地址占用、Connection Refused或MySQL socket文件失效等高频故障,借助netstat、tcpdump等工具进行分层排查是工程实践中的必备技能。本文从Socket底层原理出发,结合C#与Python实操,系统

weixin_33863087的博客 319

Stable-Baselines3性能优化:多环境训练对比指南(DummyVecEnv vs SubprocVecEnv)

本文深入对比了Stable-Baselines3中DummyVecEnv与SubprocVecEnv两种向量化环境的性能差异与应用场景。DummyVecEnv适用于轻量级、步进快的环境,调试友好且开销低;而SubprocVecEnv则通过真正的多进程并行,能显著加速计算密集型环境的训练。文章通过基准测试与决策树,指导开发者根据环境计算成本、CPU核心数等关键因素做出最优选择,以实现训练效率最大化。

weixin_29063979的博客 147

POCV/SOCV 、LVF的差别

1.POCV与OCV、AOCV 为了模拟片上PVT的差异带来的影响,最早提出了OCV(On Chip Variation)给每个cell都设置一个固定的derate值,来覆盖最悲观的情况,但是随着工艺发展,设计规模增大,OCV过度的悲观开始限制性能,于是又有了AOCV(Advanced On Chip Variation),用基于depth和distance的derate来取代单一的全局的derate值,但时序收敛的过程中逻辑级数depth的变化让时序分析的时间变得非常长,由此POCV诞生了。 POCV

m0_61544122的博客 5365

Python Socket编程入门到实战:TCP/UDP通信、粘包处理与多线程聊天室

网络通信是现代软件开发的基础能力,而Socket正是应用层与传输层之间的桥梁。理解Socket的本质,就能理解两台设备如何通过IP和端口建立连接、交换数据。TCP作为面向连接的可靠协议,通过三次握手保证数据有序到达,但流式传输也带来了粘包问题;UDP则更轻量,适合实时性要求高的场景。掌握Socket的编程模型,不仅能够构建客户端-服务端应用,还能深入理解HTTP、IM等上层协议的工作机制。从回显服务到多线程聊天室,从阻塞模式到超时控制,通过Python这一高效工具,可以快速实践网络通信的核心原理,为后续开发

weixin_33850890的博客 250

使用自制的NTC测量模块测试Plecs的热仿真效果

可以测试:您完全可以用这个模型来测试热仿真。NTC 模型是连接电气域和热域的关键桥梁。实现闭环:通过这种方式,您创建了一个高度真实的正反馈闭环系统:负载增加 -> 损耗增加 -> 温度升高 -> NTC 阻值变化 -> 控制电路可能因此调整(如降低频率或电流)-> 损耗变化 -> 温度变化。应用场景:这对于设计过温保护 (OTP) 电路风扇控制系统以及分析热失控条件非常有用。单位:确保热域中使用的单位( Kelvin 或 Celsius )与您的 C-Script 模型输入期望的单位一致。

311

Unity游戏开发:从零构建TCP同步通信基础模块

在网络编程中,Socket是实现进程间通信的基础技术,它定义了不同主机间数据交换的端点。其工作原理基于TCP/IP协议栈,通过建立连接、传输字节流和关闭连接三个核心步骤,确保数据的可靠、有序传输。这一技术价值在于为分布式应用提供了稳定、面向连接的数据通道,是构建实时交互系统(如多人在线游戏、即时通讯软件)的基石。在Unity游戏开发场景中,理解并掌握基础的TCP同步通信,是处理玩家状态同步、游戏指令收发等核心联网功能的前提。本文聚焦于Unity环境,通过封装可复用的TcpConnection类,详细解析了如

weixin_30294295的博客 606

实战落地!Python抓取股票历史数据:开盘/收盘/成交量全维度爬取(附数据清洗+可视化)

股票历史数据抓取的核心是“数据准确性+完整性”,网页爬取适合小批量、个性化需求,API调用适合批量、标准化需求。多市场数据抓取:适配港股(00700.HK)、美股(AAPL)的抓取逻辑;高频数据抓取:抓取分钟级、小时级行情数据,用于短线量化策略;财务数据扩展:抓取市盈率、市净率、净利润等财务指标,结合价格数据做基本面分析;量化策略回测:将清洗后的数据接入Backtrader、VNPY等量化框架,验证策略有效性。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1740

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Linux / Windows Subsystem for Linux (WSL) 安装 ADB (Android Debug Bridge,Android 调试桥)

Linux / Windows Subsystem for Linux (WSL) 安装 ADB (Android Debug Bridge,Android 调试桥)

程永强 3795

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

YiShaAdmin 跑不起来?新手高频问题速查(附部署自查清单)

YiShaAdmin 是基于 .NET Core MVC 的权限管理系统,内置员工、角色、菜单等完整后台功能。本文按使用阶段整理新手最常卡住的 10 个问题,每个问题都按「症状 → 原因 → 处理 → 验证」四段式给出步骤,照着排查,通常几分钟就能跑通。 ## 项目一览 | 项目 | 内容 | |:---|:---| | 项目名称 | YiShaAdmin | | 核心功能 | Web 权限管

gitblog_00993的博客 241

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Ollama入门实战

概述:安装、Open WebUI、新版、目录迁移、命令行、网络、环境变量、多模态引擎、工具调用、Thinking、结构化输出、API、自动更新、云模型、Turbo、集成、modelfile; 问题:ollama_origins、启动超时、list为空

lonelymanontheway的博客 1761
上一篇: 如何获取一定范围内不重复的随机数
下一篇: 服务器压力测试工具0——需求与设计
Seven17000
博客等级 码龄11年 67粉丝 86原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值