udp
udp copied to clipboard
Muticast not working on ios.
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();
}
}