но при получении пакета на сокет вываливается ошибка ‘invalid argument’. Нигде не могу найти информации почему так происходит. На винде отрабатывает корректно, проблема именно с маком. Код супер простой, ничего неожиданного:
let socket = std::net::UdpSocket::bind("0.0.0.0:8080”).unwrap();
let mut buf = Vec::with_capacity(65535);
loop {
match socket.recv_from(&mut buf) {
Ok((size, addr)) => {
buf.clear();
}
Err(err) => {
eprintln!("Error: {}", err);
return
}
}
}
При использовании recv пакеты вообще не приходят.
Кто то сталкивался?
точно с фаерволлом никаких проблем нет?
У буфа размер 0 видимо
А он должен быть инициализирован полностью, или аллокации достаточно?
должен, либо надо брать MaybeUninit или bytes (https://docs.rs/bytes/1.1.0/bytes/trait.BufMut.html#tymethod.chunk_mut)
Понял, попробую, спасибо
Обсуждают сегодня