udp icon indicating copy to clipboard operation
udp copied to clipboard

Muticast not working on ios.

Open khanmujeeb687 opened this issue 6 months ago • 0 comments

import 'dart:convert';
import 'dart:io';

import 'package:local_network_sync/types.dart';
import 'package:udp/udp.dart';

class MulticastUtil {
  static const multicastAddress = '239.1.2.3'; // Choose a valid multicast IP
  static const multicastPort = 3000;
  static UDP? _reciever;

  static Future<void> addMultiCastListener(
      void Function(Packet packet) onReceive) async {
    _reciever = await UDP.bind(
      Endpoint.multicast(
        InternetAddress(multicastAddress),
        port: Port(multicastPort),
      ),
    );

    _reciever?.asStream().listen((datagram) {
      if (datagram != null) {
        final message = String.fromCharCodes(datagram.data);
        print('📩 Received: $message from ${datagram.address}');
        onReceive(Packet.fromString(message));
      }
    });
  }

  static Future<void> sendMessage(Packet packet) async {
    final sender = await UDP.bind(Endpoint.any());
    final data = utf8.encode(packet.toString());
    int resp = await sender.send(
      data,
      Endpoint.multicast(
        InternetAddress(multicastAddress),
        port: Port(multicastPort),
      ),
    );
    print("Resp$resp");
  }

  static void stopListning() {
    _reciever?.close();
  }
}

khanmujeeb687 avatar Jul 15 '25 20:07 khanmujeeb687