【发布时间】:2021-03-27 00:05:09
【问题描述】:
我想从 Flutter 应用程序连接到本地网络上的计算机。有没有办法让所有机器都连接到本地网络?喜欢ping广播地址吗?
【问题讨论】:
-
如果您使用 wifi,您应该能够从其本地 IP 访问所需的机器
标签: networking dart flutter
我想从 Flutter 应用程序连接到本地网络上的计算机。有没有办法让所有机器都连接到本地网络?喜欢ping广播地址吗?
【问题讨论】:
标签: networking dart flutter
要发现您的本地网络并列出连接的计算机、打印机和其他网络设备,请使用 ping_discover_network 包。
获取本地ip并发现网络设备:
import 'package:wifi/wifi.dart';
import 'package:ping_discover_network/ping_discover_network.dart';
final String ip = await Wifi.ip;
final String subnet = ip.substring(0, ip.lastIndexOf('.'));
final int port = 80;
final stream = NetworkAnalyzer.discover(subnet, port);
stream.listen((NetworkAddress addr) {
if (addr.exists) {
print('Found device: ${addr.ip}');
}
});
【讨论】:
目前该库仅适用于 Android,但是...
https://pub.dartlang.org/packages/mdns
为您正在运行的任何服务设置 mdns。
发现服务本身
startMdnsDiscovery(String serviceType){
Mdns mdns = new Mdns(discoveryCallbacks: discoveryCallbacks);
mdns.startDiscovery(serviceType);
}
2020 年 3 月 26 日更新 - 这不再适用于最新版本的颤振,请参阅下面的更新示例。
更新示例:here
另外,what is MDNS。
【讨论】: