-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Description
I trying to discover a device on the network with udp multicast. I'm using this code:
final udpSocket = await RawDatagramSocket.bind(InternetAddress.anyIPv4, 5544, reuseAddress: true);
udpSocket.joinMulticast(address);
final subscription = udpSocket.listen(
(e) {
Datagram dg = udpSocket.receive();
if (dg == null) return;
String message = new String.fromCharCodes(dg.data);
if (message.startsWith(wantedResponse)) {
final data = message.replaceFirst(wantedResponse, '').trim();
final json = jsonDecode(data);
final url = '${json['isSecure'] ? 'https' : 'http'}://${dg.address.address}:${json['port']}/';
completer.complete(url);
}
},
cancelOnError: true,
onError: completer.completeError,
);
udpSocket.send(dataToSend, address, 5544);
But on iOS it crash with:
12:04:24.192 21 info flutter.tools OS Error: Can't assign requested address, errno = 49
12:04:24.199 22 info flutter.tools #0 _NativeSocket.joinMulticast (dart:io-patch/socket_patch.dart:1151:28)
12:04:24.199 23 info flutter.tools #1 _RawDatagramSocket.joinMulticast (dart:io-patch/socket_patch.dart:1901:13)
12:04:24.199 24 info flutter.tools #2 LocalServerProvider.search (package:lisa_flutter/src/common/network/local_server_provider.dart:22:15)
12:04:24.199 25 info flutter.tools <asynchronous suspension>
12:04:24.199 26 info flutter.tools #3 HostInterceptor.before (package:lisa_flutter/src/common/network/api_provider.dart:55:53)
12:04:24.199 27 info flutter.tools <asynchronous suspension>
12:04:24.199 28 info flutter.tools #4 Post._send (package:jaguar_resty/routes/routes.dart:681:44)
12:04:24.199 29 info flutter.tools <asynchronous suspension>
12:04:24.199 30 info flutter.tools #5 Post.go (package:jaguar_resty/routes/routes.dart:723:41)
12:04:24.199 31 info flutter.tools #6 _LoginApi&ApiClient&_$LoginApiClient.login (package:lisa_server_sdk/api/login_api.jretro.dart:16:16)
12:04:24.199 32 info flutter.tools <asynchronous suspension>
12:04:24.199 33 info flutter.tools #7 LoginApi.login (package:lisa_server_sdk/api/login_api.dart:28:22)
12:04:24.199 34 info flutter.tools #8 _LoginBloc.login (package:lisa_flutter/src/login/bloc/login_bloc.dart:61:51)
12:04:24.200 35 info flutter.tools <asynchronous suspension>
12:04:24.200 36 info flutter.tools #9 LoginBloc.login.<anonymous closure> (package:lisa_flutter/src/login/bloc/login_bloc.g.dart:63:47)
12:04:24.200 37 info flutter.tools #10 _rootRun (dart:async/zone.dart:1124:13)
12:04:24.200 38 info flutter.tools #11 _ZoneDelegate.run (dart:async/zone.dart:711:19)
12:04:24.200 39 info flutter.tools #12 AsyncAction._run (package:mobx/src/api/async/async_action.dart:41:29)
12:04:24.200 40 info flutter.tools #13 _CustomZone.run (dart:async/zone.dart:1021:19)
12:04:24.200 41 info flutter.tools #14 AsyncAction.run (package:mobx/src/api/async/async_action.dart:26:26)
12:04:24.200 42 info flutter.tools <asynchronous suspension>
12:04:24.200 43 info flutter.tools #15 LoginBloc.login (package:lisa_flutter/src/login/bloc/login_bloc.g.dart:63:31)
12:04:24.200 44 info flutter.tools #16 LoginScreen.build.<anonymous closure> (package:lisa_flutter/src/login/presentation/login_screen.dart:82:45)
12:04:24.202 45 info flutter.tools #17 ProgressButton.build.<anonymous closure> (package:lisa_flutter/src/common/presentation/loading_button.dart:58:40)
12:04:24.202 46 info flutter.tools <asynchronous suspension>
12:04:24.202 47 info flutter.tools #18 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:635:14)
12:04:24.202 48 info flutter.tools #19 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:711:32)
12:04:24.202 49 info flutter.tools #20 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:181:24)
12:04:24.202 50 info flutter.tools #21 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:352:11)
12:04:24.202 51 info flutter.tools #22 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:264:7)
12:04:24.204 52 info flutter.tools #23 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:450:9)
12:04:24.204 53 info flutter.tools #24 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
12:04:24.204 54 info flutter.tools #25 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:100:11)
12:04:24.204 55 info flutter.tools #26 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
12:04:24.204 56 info flutter.tools #27 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
12:04:24.205 57 info flutter.tools #28 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
12:04:24.205 58 info flutter.tools #29 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
12:04:24.205 59 info flutter.tools #30 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
12:04:24.206 60 info flutter.tools #31 _rootRunUnary (dart:async/zone.dart:1136:13)
12:04:24.206 61 info flutter.tools #32 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
12:04:24.206 62 info flutter.tools #33 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
12:04:24.206 63 info flutter.tools #34 _invoke1 (dart:ui/hooks.dart:234:10)
12:04:24.206 64 info flutter.tools #35 _dispatchPointerDataPacket (dart:ui/hooks.dart:154:5)
I also test on Mac osX app and it work without issue, in pur dart too. No issue, only iOS
Env:
[✓] Flutter (Channel dev, v1.6.5, on Mac OS X 10.14.5 18F132, locale fr-FR)
• Flutter version 1.6.5 at /Users/jaumard/flutter
• Framework revision 7c811b6a66 (2 days ago), 2019-05-28 10:19:19 -0700
• Engine revision 8dc3a4cde2
• Dart version 2.3.2 (build 2.3.2-dev.0.0 e3edfd36b2)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at /Users/jaumard/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 10.2.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 10.2.1, Build version 10E1001
• CocoaPods version 1.5.3
[✓] iOS tools - develop for iOS devices
• ios-deploy 1.9.4
[✓] Android Studio (version 3.4)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 35.3.1
• Dart plugin version 183.6270
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
[✓] IntelliJ IDEA Ultimate Edition (version 2019.1.2)
• IntelliJ at /Applications/IntelliJ IDEA.app
• Flutter plugin version 35.3.3
• Dart plugin version 191.7221
[✓] Connected device (3 available)
• Pixel 3a • 94HAY0P9MP • android-arm64 • Android 9 (API 28)
• iPhone de Andrea • 09e05a2baacde4b9261c05f770f8df6cfb1ec4b8 • ios • iOS 12.2
• macOS • macOS • darwin-x64 • Mac OS X 10.14.5 18F132
• No issues found!
jaumard
Metadata
Metadata
Assignees
Labels
No labels