listenIPv6 method
Implementation
Stream<MndpMessage> listenIPv6() {
var ftxUDPSocket = createNewMNDPIPv6Socket();
ftxUDPSocket.then((RawDatagramSocket txSocket) async {
txUDPIPv6Socket = txSocket;
sendBroadcastIPv6PeriodicTimer =
Timer.periodic(const Duration(seconds: 10), (Timer t) async {
await sendBroadcastIPv6RequestMsg();
});
var frxUDPSocket = createNewMNDPIPv6Socket();
frxUDPSocket.then((rxSocket) async {
rxUDPIPv6Socket = rxSocket;
rxUDPIPv6Socket!.broadcastEnabled = true;
rxUDPIPv6Socket!.multicastLoopback = false;
rxUDPIPv6Socket!.listen((RawSocketEvent event) async {
if (event == RawSocketEvent.read) {
Datagram? datagram = rxSocket.receive();
if (datagram != null && datagram.data.length > 4) {
MndpMessage msg = await decoder.decode(datagram.data);
controller.add(msg);
}
}
});
});
});
return controller.stream;
}