尝试连接Msft SQL Server时出现I/O Error: Socket Closed问题求助
排查Android连接SQL Server出现
I/O Error: Socket Closed的步骤 一、目标SQL Server即时状态核查
- 确认SQL配置管理器中TCP/IP协议已启用,监听端口(默认1433)未被修改,且服务器防火墙已开放该端口的入站规则
- 查看SQL Server错误日志(SSMS→管理→SQL Server日志),搜索是否存在连接中断、资源耗尽(如连接池溢出、内存不足)相关报错
- 在服务器和Android设备上双向执行
ping目标IP,同时用tracert(Windows)/traceroute(Android)排查路由节点是否存在丢包、延迟过高的情况
二、连接参数与驱动验证
- 核对Android端连接字符串:确认目标SQL Server的IP、端口、数据库名、账号密码无误,若启用
encrypt=true需确保服务器已配置对应证书,否则可能触发连接中断 - 检查JDBC驱动版本:若驱动版本过旧,可能与目标SQL Server版本不兼容(如SQL Server 2019需匹配较新驱动),尝试升级至对应稳定版
- 编写极简测试代码:仅保留连接+基础查询逻辑,排除业务代码中主动关闭连接、超时设置不合理的问题
三、网络环境深层排查
- 核查中间网络设备:若Android设备与服务器间存在防火墙、代理、VPN或负载均衡,确认是否有空闲连接超时策略或SQL端口流量限制
- 切换网络测试:让Android设备连接与服务器同内网的网络,或更换其他外网环境,排除当前运营商线路问题
- 抓包分析:用Wireshark在Android设备或服务器上过滤SQL端口流量,查看连接建立后是否有异常FIN/RST断开包,定位断开发起方
四、服务器资源与配置排查
- 检查服务器资源使用率:确认CPU、内存、磁盘IO无异常峰值,资源耗尽可能导致服务器主动断开连接
- 验证远程连接配置:确认目标服务器
remote access选项已开启,且连接账号拥有远程连接权限 - 检查连接数限制:查看SQL Server
max_connections配置,确认是否达到连接上限导致新连接被拒绝
内容的提问来源于stack exchange,提问作者BitWiseByteDumb
相关产品推荐
相关产品推荐

