首页 > 解决方案 > 如何将套接字绑定到网络接口

问题描述

该应用程序必须通过其提供的 WiFi 网络连接到托管在 192.168.0.10:35000 的套接字服务器,同时具有活动的数据连接。

以下代码引发错误:

SocketException:连接超时,主机:192.168.0.10,端口:35000

this._socket = await Socket.connect('192.168.0.10', 35000);

如果我禁用手机的数据连接,它会正常连接。我认为这证实了 Socket 未绑定到 WiFi 网络。

在原生 Android 环境中,我相信该ConnectivityManager.bindProcessToNetwork()方法或该Network.getSocketFactory()方法可以解决问题。

有没有办法在不编写本机代码的情况下实现这一点?

一些额外的信息:

在“192.168.0.10”上运行InternetAddress.lookup()会得到以下结果:

图片

运行NetworkInterfaces.list()给出以下信息:

图片

标签: socketsflutter

解决方案


推荐阅读