listenIPv4 method
Implementation
Stream<MndpMessage> listenIPv4() {
var ftxUDPSocket = createNewMNDPIPv4Socket();
ftxUDPSocket.then((RawDatagramSocket txSocket) async {
txUDPIPv4Socket = txSocket;
sendBroadcastIPv4PeriodicTimer =
Timer.periodic(const Duration(seconds: 10), (Timer t) {
sendBroadcastIPv4RequestMsg();
});
var frxUDPSocket = createNewMNDPIPv4Socket();
frxUDPSocket.then((rxSocket) async {
rxUDPIPv4Socket = rxSocket;
rxUDPIPv4Socket!.broadcastEnabled = true;
rxUDPIPv4Socket!.multicastLoopback = false;
rxUDPIPv4Socket!.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;
}