Кажется, что номер порта источника случайно меняется каждый раз, когда я начинаю новый поток, поэтому я установил номер порта источника на 0, но почему-то получаю обратно только событие WRITE.
/>Я что-то упустил?
Код: Выделить всё
` Future _getUdpData() async {
try {
final datagramSocket = await RawDatagramSocket.bind(InternetAddress.anyIPv4, 0);
datagramSocket.broadcastEnabled = true;
datagramSocket.readEventsEnabled = true;
print('Datagram socket ready to receive');
print('${datagramSocket.address.address}:${datagramSocket.port}');
datagramSocket.listen((RawSocketEvent event) {
print('Socket event: $event');
if (event == RawSocketEvent.read) {
_handleReadEvent(datagramSocket);
}
});
} catch (event) {
print('Error retrieving data: $event');
}
}
void _handleReadEvent(RawDatagramSocket datagramSocket) {
Datagram? dg = datagramSocket.receive();
if (dg != null) {
String message = String.fromCharCodes(dg.data).trim();
print('Datagram from ${dg.address.address}:${dg.port}: $message');
} else {
print('No datagram received.');
}
}`
Подробнее здесь: https://stackoverflow.com/questions/787 ... in-flutter
Мобильная версия