TCP 偶尔出现connection refused

每次用第一次打开服务器,再打开客户端惊醒连接,都可以正常连接,如果此时手动断开,再次连接就回家出现这种情况!

经过很长时间的查资料、百度,终于知道问题出在哪里了。

我的代码中是直接调用close()函数关闭socket的,而问题就出在了这里,在TCP协议中,用close关闭socket是很不“优雅”的,导致了TIME_WAIT,所以会延时关闭socket 

再次连接就会出现connection refused !再过一分钟进行连接就可以了。

由于本人才识学浅,暂时没有找到解决办法,找到解决办法后重新更新本文!

### 解决 FFmpeg TCP 连接被拒问题 当遇到 `Connection refused` 错误时,通常意味着客户端尝试连接服务器上的特定端口失败。这可能是由于多种原因引起的,包括但不限于防火墙设置、服务未启动或配置错误。 #### 检查网络连通性和服务器状态 确认目标 IP 地址和端口号是否正确无误,并验证服务器上对应的服务已正常运行。可以使用简单的 Telnet 或者 netcat 工具来测试端口可达性: ```bash telnet 151.101.108.133 443 ``` 如果无法建立连接,则说明可能存在网络层面的问题或者是远程主机并未监听该端口[^2]。 #### 配置防火墙规则 确保本地及远端机器之间的防火墙允许所需端口的数据传输。对于 Linux 系统而言,可以通过 iptables 来管理入站流量策略;而对于 Windows 则需调整其内置的高级安全Windows Defender 防火墙选项。 #### 修改应用程序绑定地址 有时应用本身会限定只接受来自某些IP范围内的请求。检查 FFmpeg 的配置文件以及启动参数,确保它能够响应外部访问。例如,在 RTSP 流媒体场景下,可能需要指定 `-rtsp_flags listen` 参数让 FFmpeg 处于监听模式等待客户机发起握手请求[^4]。 #### 替代方案——离线资源获取 考虑到直接从 GitHub 下载静态库可能会遭遇连接中断的情况,建议预先下载所需的依赖项并放置在项目目录下的 `.cache/ffmpeg/` 中,按照 MD5 哈希值加原文件名的方式重命名保存,这样即使在网络状况不佳的情况下也能顺利完成编译构建过程[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值