Mag*_*ang 6 networking dart flutter
我想从 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}');
}
});
Run Code Online (Sandbox Code Playgroud)
目前这个库只适用于 Android,但是......
https://pub.dartlang.org/packages/mdns
为您正在运行的任何服务设置 mdn。
发现这样的服务
startMdnsDiscovery(String serviceType){
Mdns mdns = new Mdns(discoveryCallbacks: discoveryCallbacks);
mdns.startDiscovery(serviceType);
}
Run Code Online (Sandbox Code Playgroud)
2020 年 3 月 26 日更新- 这不再适用于最新版本的 flutter,请参阅下面的更新示例。
更新的示例:此处
另外,什么是 MDNS。