Код: Выделить всё
[ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: SocketException: Send failed (OS Error: No route to host, errno = 65), address = 0.0.0.0, port = 5353
#0 _NativeSocket.send (dart:io-patch/socket_patch.dart:1521:34)
#1 _RawDatagramSocket.send (dart:io-patch/socket_patch.dart:3078:15)
#2 MDnsClient.lookup (package:multicast_dns/multicast_dns.dart:227:22)
Код: Выделить всё
Future search() async {
const String name = '_androidtvremote2._tcp';
final MDnsClient client = MDnsClient();
try {
await client.start();
await for (final PtrResourceRecord ptr in client
.lookup
(ResourceRecordQuery.serverPointer(name))) {
final fullName = ptr.domainName;
final friendlyName = fullName.split('.')[0];
await for (final SrvResourceRecord srv in client
.lookup(
ResourceRecordQuery.service(ptr.domainName),
)) {
final host = srv.target;
final port = srv.port;
await for (final IPAddressResourceRecord addr in client
.lookup(
ResourceRecordQuery.addressIPv4(host),
)) {
final ip = addr.address.address;
print('Found $friendlyName at $ip:$port');
}
}
}
client.stop();
} catch (error) {
print(error);
}
}
Добавил NSLocalNetworkUsageDescription в Info.plist.
Добавил NSBonjourServices с _androidtvremote2._tcp.
Разрешение локальной сети включено в настройках iOS.
Отлично работает на Симулятор iOS и устройства Android.
И iPhone, и Android TV подключены к одной и той же сети Wi-Fi.
Несмотря на все это, на реальном iPhone всегда выдается SocketException (ошибка ОС: нет маршрута к хосту, errno = 65).
Подробнее здесь: https://stackoverflow.com/questions/797 ... ception-er
Мобильная версия