Flutter - Socket.Connect() - SocketException:操作系统错误:连接超时

Posted

技术标签:

【中文标题】Flutter - Socket.Connect() - SocketException:操作系统错误:连接超时【英文标题】:Flutter - Socket.Connect() - SocketException: OS Error: Connection timed out 【发布时间】:2021-04-18 23:57:38 【问题描述】:

当我使用我的设备(真实)进行调试模式(使用“flutter run”)时,Socket.Connect() 方法不起作用。

另外我想说的是,这个 Connect 方法在“dart:io”库中。

很快;

我用 Python 打开了一个服务器 (TCP)。

我编写了如下所示的 Flutter 客户端,以便能够使用 Python 连接到服务器。

未来 den() 异步 打印(“开始”); 套接字 sock = 等待 Socket.connect("192.168.0.159", 5431); print("完成 +++++++++++++++++++++++++++");

但是,我将 SocketError 作为连接超时。

我收到的错误信息:

E/flutter (17655): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: SocketException: OS Error: Connection timed out, errno = 110, address = 192.168.0.159, port = 43836

注意: 我尝试通过添加 INTERNET 权限来更改清单文件,但它不起作用。

【问题讨论】:

【参考方案1】:

这是一个奇怪的问题,因为我分享的代码没有问题。 Windows Defender 执行了一个规则来阻止打开一个端口作为服务器。因此,我在我的机器上启动了服务器,但是我无法从我的 android 设备连接它。

可能是 Flutter 显示的错误码不清晰。如果您在连接或绑定的套接字编程方面出现错误,请查看 Defender(或防火墙)可能是有效的方法。不幸的是,当我刚开始学习 Flutter 时,我想在之后检查一下 Defender。

【讨论】:

以上是关于Flutter - Socket.Connect() - SocketException:操作系统错误:连接超时的主要内容,如果未能解决你的问题,请参考以下文章

socket connect 反复使用,为何到一定的时候connect不上服务器?

在 Python 中使用 socket.connect() 之前查找操作系统生成的端口

C语言socket connect()函数(未完)

将 connectParams 与 JWT 一起使用时,Socket.connect() 不一致

为啥Java的socket.connect()会消耗100%的cpu资源?

socket connect() 被误认为是 QT connect()