Die mDNS-Erkennung funktioniert auf dem iOS-Simulator, aber nicht auf einem echten Gerät (SocketException errno = 65)IOS

Programmierung für iOS
Anonymous
 Die mDNS-Erkennung funktioniert auf dem iOS-Simulator, aber nicht auf einem echten Gerät (SocketException errno = 65)

Post by Anonymous »

Ich verwende das Paket multicast_dns von Flutter, um Android TVs im lokalen Netzwerk mithilfe von mDNS zu erkennen. Der Code funktioniert perfekt auf dem iOS-Simulator, schlägt jedoch auf einem echten iPhone mit der folgenden Fehlermeldung fehl:

Code: Select all

[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)

Code: Select all

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);
}
}

Ich habe bereits Folgendes getan:
NSLocalNetworkUsageDescription in Info.plist hinzugefügt.
NSBonjourServices mit _androidtvremote2._tcp hinzugefügt.
Lokale Netzwerkberechtigung ist in den iOS-Einstellungen aktiviert.
Funktioniert einwandfrei auf iOS-Simulator und Android-Geräten.
Sowohl iPhone als auch Android TV nutzen dasselbe WLAN.
Trotzdem wird auf einem echten iPhone immer eine SocketException (OS-Fehler: Keine Route zum Host, errno = 65) ausgelöst.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post