Теперь, когда я отправляю сообщение от клиента, сообщение отправляется успешно, но на виртуальном устройстве ТВ не удается получить сообщение. Я подключаю оба устройства к одной сети, и порт тот же, но сообщение не получено
Код 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]);
Код: Выделить всё
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();
}
};
}, []);
Пожалуйста, устраните эту ошибку..
Заранее спасибо
Подробнее здесь: https://stackoverflow.com/questions/791 ... e-emulator