You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32-S3-VROOM与本地XAMPP PHP服务器反向TCP连接失败,报错[10061]

ESP32-S3-VROOM与本地XAMPP PHP服务器反向TCP连接失败,报错[10061]

老哥,我看了你遇到的问题——ESP32传图到XAMPP服务器、用Gemini分析这部分都跑通了,但PHP脚本反向连ESP32的TCP服务器时碰上个10061错误,目标机器主动拒绝连接,确实挺闹心的。我帮你梳理下核心问题和排查方向:

最核心的代码疏漏:ESP32的TCP服务器没启动!

看你的Arduino代码,你定义了WiFiServer server(port);,但setup()函数里完全没调用server.begin();!这就好比你开了个店但没开门,别人自然进不来——ESP32的80端口根本没在监听,PHP脚本发起连接请求时,ESP32自然会主动拒绝,报10061错误。

赶紧在setup()里加上这行代码,建议放在创建FreeRTOS任务之前:

// 在xTaskCreate之前添加
server.begin();
Serial.print("ESP32 TCP server listening on port ");
Serial.println(port);

接下来的几个排查点:

  • 确认ESP32的IP地址正确性:PHP脚本里写的$host = "192.168.0.65";,得和ESP32串口输出的ESP32-CAM IP Address:完全一致,别手滑输错了IP段或者最后一位数字。
  • 检查本地防火墙:运行XAMPP的Windows机器防火墙可能挡住了对ESP32 80端口的访问,你可以临时关闭防火墙测试,或者手动添加一条入站规则,允许外部访问ESP32的80端口。
  • 验证网络连通性:在XAMPP机器的命令提示符里执行ping 192.168.0.65,如果ping不通,说明ESP32和服务器不在同一个局域网,或者WiFi连接有问题,先把网络通了再说。

补充代码细节建议

你的ESP32 serverTask逻辑没问题,但可以加个小优化:每次client连接后,除了接收数据,也可以给PHP返回个确认消息,方便排查是否连通成功,比如在client.stop()之前加:

client.println("Received data successfully!");
client.flush();

关于网络捕获

你提供的捕获图显示连接请求被拒绝,这完全对应了“ESP32端口未监听”或者“防火墙拦截”的情况,把上面的问题解决后,应该就能看到成功的TCP三次握手了。

备注:内容来源于stack exchange,提问作者Kingwebbie001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 02:55:30