Почему UDP-клиенту на VirtualBox-Ubuntu не приходят датаграммы с UDP-сервера-Windows? У меня клиент отправляет серверу датаграмму и ждёт ответ. Датаграмма доходит вообще отлично, но когда сервер отправляет знак что принял датаграмму, она не доходит до клиента. Клиент находится на VirtualBox-Ubuntu. Когда запускаю клиента и сервер на винде, то всё окей. Может здесь есть какая-то линуксовая тонкость? Вот как отправляю ответ обратно://приём датаграммы от клиента int received = recvfrom(ls[i], datagram, sizeof(datagram), 0, (struct sockaddr*) &addr, &addrlen); if (received > 0) { //отправка датаграммы, которая говорит что всё хорошо sendto(ls[i], datagram, 4, 0, (struct sockaddr*)&addr, sizeof(struct sockaddr_in)); //получается что я отправляю на тот же addr. Когда я запускаю клиента на винде то всё хорошо } Через WireShark показывает что всё приходит в правильный порт и отправляется из правильного порта. Не понимаю окончательно в чём проблема
Одна из возможных причин, по которой UDP-клиенту на VirtualBox-Ubuntu не приходят датаграммы с UDP-сервера-Windows, может быть связана с настройками сети в VirtualBox.
Попробуйте следующие шаги для устранения проблемы:
Убедитесь, что у виртуальной машины Ubuntu в VirtualBox правильно настроены сетевые настройки. В меню VirtualBox выберите виртуальную машину Ubuntu, затем "Настройка" -> "Сеть" и убедитесь, что тип сетевого адаптера выбран правильно (например, NAT или Мост).
Убедитесь, что ваш фаервол на Ubuntu не блокирует входящие пакеты на порту, на котором работает ваш UDP-сервер.
Проверьте, не блокируется ли соединение вашим антивирусом или другими программами безопасности на Ubuntu.
Попробуйте использовать другой порт для обмена данными между клиентом и сервером, возможно, ваш текущий порт блокируется где-то на пути.
Если после выполнения этих шагов проблема остается, рекомендуется использовать инструменты для отладки сети, такие как tcpdump или Wireshark, чтобы проанализировать сетевой трафик и выявить возможные причины неудачной передачи данных.
Одна из возможных причин, по которой UDP-клиенту на VirtualBox-Ubuntu не приходят датаграммы с UDP-сервера-Windows, может быть связана с настройками сети в VirtualBox.
Попробуйте следующие шаги для устранения проблемы:
Убедитесь, что у виртуальной машины Ubuntu в VirtualBox правильно настроены сетевые настройки. В меню VirtualBox выберите виртуальную машину Ubuntu, затем "Настройка" -> "Сеть" и убедитесь, что тип сетевого адаптера выбран правильно (например, NAT или Мост).
Убедитесь, что ваш фаервол на Ubuntu не блокирует входящие пакеты на порту, на котором работает ваш UDP-сервер.
Проверьте, не блокируется ли соединение вашим антивирусом или другими программами безопасности на Ubuntu.
Попробуйте использовать другой порт для обмена данными между клиентом и сервером, возможно, ваш текущий порт блокируется где-то на пути.
Если после выполнения этих шагов проблема остается, рекомендуется использовать инструменты для отладки сети, такие как tcpdump или Wireshark, чтобы проанализировать сетевой трафик и выявить возможные причины неудачной передачи данных.