createUdpSocket method

Future<void> createUdpSocket(
  1. String host,
  2. int port
)

Implementation

Future<void> createUdpSocket(String host, int port) async {
  try {
    _udpSocket = await RawDatagramSocket.bind(host, port);
    print('UDP Socket bound to ${_udpSocket?.address}:${_udpSocket?.port}');

    _udpSocket?.listen(
      (RawSocketEvent event) {
        if (event == RawSocketEvent.read) {
          final datagram = _udpSocket?.receive();
          if (datagram != null) {
            final message = String.fromCharCodes(datagram.data);
            print('Received UDP message: $message from ${datagram.address}:${datagram.port}');
          }
        }
      },
      onError: (error) {
        print('UDP Socket error: $error');
      },
      onDone: () {
        print('UDP Socket closed');
      },
    );
  } catch (e) {
    print('Error creating UDP socket: $e');
  }
}