android - Flutter HttpServer 无法从局域网内其他电脑访问
问题描述
我想实现能够通过 http 服务器将数据发送到 Flutter android 应用程序的功能。例如,当我在 Windows 上运行的 node.js 应用程序任务结束时,我想在应用程序上进行振动。
这里的例子来自写 HTTP 客户端和服务器 | Dart,这适用于 localhost:8080 在 android 上。但不适用于 LAN 网络,例如从这台 Windows 机器认为 android LAN IP 地址“http://192.168.0.193:8080/”。我做了谷歌并搜索了堆栈溢出,发现--web-port 8080 --web-hostname 0.0.0.0
运行Flutter时需要,但这仍然不起作用,这表明我192.168.0.193 refused to connect.
已经确认了android IP settings > wifi > wifi preference > advanced > IP addresses
,我确定IP本身是正确的。
所以,我不知道为什么我无法通过本地 IP 地址连接到应用程序。非常感谢您的帮助,谢谢。
import 'dart:io';
Future main() async {
var server = await HttpServer.bind(
InternetAddress.loopbackIPv4,
8080,
);
print('Listening on ${server.address.toString()}:${server.port} ');
await for (HttpRequest request in server) {
request.response.write('Hello, world!');
await request.response.close();
}
}
flutter run -d F5122 --web-port 8080 --web-hostname 0.0.0.0
解决方案
使用 InternetAddress.anyIPv4 而不是 InternetAddress.loopbackIPv4 为我解决了问题。
推荐阅读
- jenkins-pipeline - 通过 Jenkins 管道脚本拉取 docker 镜像并运行远程服务器
- javascript - 可在 HTML 自定义标签中拖动
- php - 将不同的类添加到标签和值并在同一行输出
- c# - NUnit 如何将屏幕截图附加到 Azure Pipeline 中的测试附件
- python - 当x轴的数量不连续时,Python Matlibplot条形图之间的空间
- java - 为亚马逊 s3 上的每个视频商店创建缩略图的最佳方法是什么?
- jenkins - 一个关于Jenkins中“单体”项目的CI流程的问题
- php - 在codeigniter中两次上传相同的文件
- javascript - 气泡图:无法读取未定义的属性“parts/Globals.js”
- objective-c - 如何使用objective-c向接口公开自定义初始化实现?