V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  Suger828  ›  全部回复第 5 页 / 共 6 页
回复总数  117
1  2  3  4  5  6  
2025 年 5 月 16 日
回复了 Suger828 创建的主题 程序员 Python 使用 fastapi 框架阻塞问题
2025 年 5 月 16 日
回复了 Suger828 创建的主题 程序员 Python 使用 fastapi 框架阻塞问题
@dcsuibian win 命令行哪有编辑模式
2025 年 5 月 16 日
回复了 Suger828 创建的主题 程序员 Python 使用 fastapi 框架阻塞问题
@neoblackcap 有可能
2025 年 5 月 15 日
回复了 Suger828 创建的主题 程序员 Python 使用 fastapi 框架阻塞问题
网络连接或 Socket 问题详解
在 Web 服务器中,特别是像 FastAPI/Uvicorn 这样的异步服务器,网络连接和 socket 配置可能会导致您遇到的症状。具体来说:
1. Socket 状态管理问题
当客户端连接到服务器时,会创建一个 socket 连接。这个连接在以下情况可能会出问题:

半开连接(Half-open connections): 当客户端断开连接但服务器没有正确检测到这种情况时,socket 可能处于"半开"状态,占用资源但不再有效。
TIME_WAIT 状态: 当连接关闭后,socket 可能会进入 TIME_WAIT 状态,在一段时间内仍然占用端口。

在 Windows 上,这种 socket 状态管理问题可能更为严重,因为 Windows 的网络堆栈实现与 Unix 系统有所不同。
2. 连接池耗尽
您的服务器可能有一个连接池限制,当所有连接都被占用时,新的请求无法被处理:

默认情况下,许多服务器有最大连接数限制
如果连接没有正确关闭,可能会导致连接池逐渐耗尽

3. SO_REUSEADDR 设置问题
在 Windows 上,socket 选项 SO_REUSEADDR 的行为与 Unix 系统不同:

在 Unix 系统上,它允许绑定到处于 TIME_WAIT 状态的地址
在 Windows 上,它的行为更宽松,允许多个进程绑定到同一地址,可能导致意外行为

4. Windows 特有的阻塞行为
Windows 上的网络 API 在某些情况下可能会表现出异步不友好的阻塞行为:

某些网络操作可能会阻塞事件循环,尽管它们声明是非阻塞的
Windows 的 WSA(Windows Socket API)与标准 BSD sockets 有细微但重要的差异

为什么 Ctrl+C 会"修复"这个问题?
当您按下 Ctrl+C 时,以下事情会发生:

强制关闭活动连接: 所有活动的 socket 连接会被强制关闭
释放端口绑定: 服务器会释放之前绑定的端口
清理半开连接: 半开连接和处于异常状态的 socket 会被清理
重置内部状态: 服务器内部状态会被部分重置,但由于您的服务器没有完全退出,一些组件会继续运行
事件循环重新调度: 事件循环通常会响应中断信号,重新调度任务

这些操作相当于"重置"了服务器的网络状态,允许它重新开始接受新连接。



上面是 ai 回答的不确定对不对
2025 年 5 月 15 日
回复了 Suger828 创建的主题 程序员 Python 使用 fastapi 框架阻塞问题
@hmxxmh 公司代码 不太方便
2025 年 5 月 15 日
回复了 Suger828 创建的主题 程序员 Python 使用 fastapi 框架阻塞问题
2025 年 5 月 8 日
回复了 northernsongy2 创建的主题 健身 健身 3 个月,记录下
@northernsongy2 那么贵啊
2025 年 5 月 8 日
回复了 northernsongy2 创建的主题 健身 健身 3 个月,记录下
健身房收费如何? 还有中午是吃完饭练还是练完吃
比 deepseek 这个幻觉怪物好多了
2025 年 4 月 27 日
回复了 Gabrielle70 创建的主题 程序员 求 ChatGPT, Claude, deepSeek 等各类 AI 的镜像/聚合网站
代理站基本都是降智的
2025 年 4 月 23 日
回复了 Suger828 创建的主题 程序员 非算法岗,李沐的动手学深度学习学完了学什么
@TimG 你看他官网的课程安排
2025 年 4 月 22 日
回复了 Suger828 创建的主题 程序员 非算法岗,李沐的动手学深度学习学完了学什么
@TimG 李沐老师的这个课程是面对大学生的一个月的课啊
2025 年 4 月 22 日
回复了 Suger828 创建的主题 程序员 非算法岗,李沐的动手学深度学习学完了学什么
@RangerWolf 就是因为不能干啥,所以才想接着学学看
机械键盘 ,还方便刻字
谁会把钱分享给你啊
mcp 有毛用,他不也是生成 sql , 最大的难点是大模型不能理解你的业务需求,还有表多导致的多表连接查询,和选择表会出错
2025 年 4 月 9 日
回复了 onion83 创建的主题 程序员 感叹现在 V 站的氛围,到处都是 “AI 做的” XX
更好的利用 ai 解决问题,不成为了新的技术了吗,
根据问题选择文章名,然后通过文章名称找到文章
2025 年 3 月 28 日
回复了 EarthChild 创建的主题 职场话题 Java 开发,接下来的路咋走啊?
@leegradyllljjjj 劝别人别干,自己却往里面钻
1  2  3  4  5  6  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2448 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 15:49 · PVG 23:49 · LAX 08:49 · JFK 11:49
♥ Do have faith in what you're doing.