На стороне React-Native я привязываюсь к порту 55555.
import dgram from 'react-native-udp';
import { Buffer } from 'buffer'
const foo = ()=>{
var socket = dgram.createSocket('udp4')
socket.bind(55555, '0.0.0.0', (e)=>{
if(e) console.log(e)
})
socket.once('listening', function() {
var buf = Buffer.from(JSON.stringify('msg'))
socket.send(buf, 0, buf.length, 5000, MACHINE_LOCAL_IP, function(err) {
if (err) alert(err)
console.log('Sent to', MACHINE_LOCAL_IP)
})
})
}
Я вижу следующий консольный журнал
socket-0 bound to address: 0.0.0.0 port: 55555
Sent to [...]
Он работает как положено, может быть 8/ 10 раз.На моем сервере я открываю UDP-сокет в python
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(1)
sock.bind(('0.0.0.0', 5000))
while True:
try:
data, in_address = sock.recvfrom(1024)
print(in_address)
except socket.timeout:
pass
except Exception as e:
print(e)
break
Когда я запускаю foo
несколько раз, вот мой вывод на python
('192.168.0.5', 55555)
('192.168.0.5', 55555)
('192.168.0.5', 55555)
('192.168.0.5', 55555)
('192.168.0.5', 55555)
('192.168.0.5', 55555)
('192.168.0.5', 52917)
('192.168.0.5', 49619)
('192.168.0.5', 63532)
('192.168.0.5', 55555)
('192.168.0.5', 55555)
Я не могучтобы выяснить, почему порт меняется!