Невозможно отправить UDP-сообщение в эмулятор виртуального устройства.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно отправить UDP-сообщение в эмулятор виртуального устройства.

Сообщение Anonymous »

Я создаю UDP-сервер с помощью реакции-native-udp и создаю UDP-клиент. Код UDP-сервера работает на виртуальном устройстве Android TV, а клиентский код UDP работает на физическом устройстве.
Теперь, когда я отправляю сообщение от клиента, сообщение отправляется успешно, но на виртуальном устройстве ТВ не удается получить сообщение. Я подключаю оба устройства к одной сети, и порт тот же, но сообщение не получено
Код UDP-сервера

Код: Выделить всё

 const [receivedMessage, setReceivedMessage] = useState('');
const [ipAddressData, setIpAddressData] = useState('');
const [server] = useState(() =>
UdpSockets.createSocket({type: 'udp4', reusePort: true}),
);
const startServer = async () => {
// Get IP Address of the TV for logging
const ipAddress = await NetworkInfo.getIPV4Address();
setIpAddressData(ipAddress ?? '');
server.on('error', err => {
console.log(`Socket error: ${err}`);
});
server.on('message', (msg, rinfo) => {
console.log(
`Message received: ${msg.toString()} from ${rinfo.address}:${
rinfo.port
}`,
);
setReceivedMessage(msg.toString());
});

server.bind(8888, () => {
console.log(`Server is listening on 8888 ${8888}`);
});
};

useEffect(() => {
startServer();
return () => {
server.close();
};
}, [server]);
Код клиента UDP

Код: Выделить всё

 const [message, setMessage] = useState('');
const [ipAddress, setIpAddress] = useState(''); // Set this to the TV's IP address
// const client = UdpSockets.createSocket({type: 'udp4', reusePort: true});
const client = React.useRef(null);

const sendMessage = () => {
if (!message || !ipAddress) {
console.log('Message or IP address is missing.');
return;
}

// Send the message to the specified IP address and port
if (client.current) {
client.current.send(
message,
0,
message.length,
8888,
ipAddress,
error => {
if (error) {
console.log('Error sending message:', error);
} else {
console.log('Message sent successfully to IP:', ipAddress);
}
},
);
}
};

useEffect(() => {
// Initialize and bind the UDP socket only once
client.current = UdpSockets.createSocket({type: 'udp4', reusePort: true});

client.current.bind(8887, () => {
console.log('Client bound');
});

// Listen for incoming messages
client.current.on('message', messageData => {
console.log('Received message:', messageData.toString());
});

// Cleanup function to close the client when component unmounts
return () => {
if (client.current) {
client.current.close();
}
};
}, []);
Это проблема с IP-адресом виртуального устройства, который не может получить данные с IP-адреса физического устройства??
Пожалуйста, устраните эту ошибку..
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-emulator
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»