close method
Closes the datagram socket.
Implementation
@override
void close() {
// Make close() idempotent - can be called multiple times safely
if (_closed) return;
_closed = true;
// Cancel the stream subscription if active
_socketSubscription?.cancel();
// Clear all message callbacks to prevent memory leaks
_messageCallbacks.clear();
// Close the underlying socket
socket.close();
}