我希望能够从Flutter应用程序连接到本地网络上的计算机。有没有办法获取所有连接到本地网络的计算机?例如ping广播地址的方法?
我希望能够从Flutter应用程序连接到本地网络上的计算机。有没有办法获取所有连接到本地网络的计算机?例如ping广播地址的方法?
要发现本地网络并列出连接的计算机、打印机和其他网络设备,请使用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}');
}
});
目前这个库只能在安卓系统上运行,但是...
https://pub.dartlang.org/packages/mdns
Setup mdns for whatever service you're running.
Discover the service as such
startMdnsDiscovery(String serviceType){
Mdns mdns = new Mdns(discoveryCallbacks: discoveryCallbacks);
mdns.startDiscovery(serviceType);
}
2020年3月26日更新 - 这个方法已经不能在最新版本的flutter中使用,下面是一个更新后的示例。
更新后的示例:这里
另外,什么是MDNS。