| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Простой UDP клиент-сервер |
| Автор: redrover 17.10.2011, 14:17 | ||||||||||||
| Не могу заставить работать широковещательное соединение между частями клиент-серверного приложения. Кажется, программа написана корректно. Прошу проверить. Специфика состоит в том, что запуск кода осуществляется на системах, функционирующих в виртуальных машинах VirtualBox. Причем, одна из машин принадлежит системе WinXP, а вторая MacOS X. Между ними налажена локальная сеть и пинг проходит. Код привожу ниже. Server main.h
.h
.cpp
Client main.h
.h
.cpp
|
| Автор: null56 17.10.2011, 14:53 |
| я в код не вчитывался, но хочу спросить другое... кто отправляет broadcast и куда (ОСи какие)? 1) просто, вроде под никасами броадкасты плодить разрешено только руту, попробуй от него запустить 2) если пингуется ниск, то надо разрешить ответы на броадкасты, по умолчанию они выключены (в линух): echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts (это в линух, в маке хз как) проверь |
| Автор: redrover 17.10.2011, 15:28 | ||
| null56, запустил под root. Не работает. Кстати, запуск localhost срабатывает и без прав доступа root. А оси Debian, но виртуализированные. Посмотрите код, может я что-то не так делаю? netstat -a -p
|
| Автор: null56 17.10.2011, 15:44 |
| а вообще броадкасты между вм идут? ты пробовал разослать? Добавлено через 3 минуты и 28 секунд ты по аналогии с примером из ассистента делал? |
| Автор: redrover 17.10.2011, 16:27 |
| Похоже не идут совсем. А как удостовериться? Пример брал из книги. |
| Автор: null56 17.10.2011, 16:49 |
должен приходить ответ на рассылающую машину от получающей машины проверь, еще раз говорю, на обоих машинах cat > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts |
| Автор: redrover 17.10.2011, 17:31 |
| 0 - если ответ запрещен? Установил программы на чистые Debian машины. Та же проблема. Правил файл, который вы указали. Не помогло. |
| Автор: null56 18.10.2011, 09:23 |
| что у тебя показывает вывод cat > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts cat > /proc/sys/net/ipv4/icmp_echo_ignore_all от рута пускаешь? а ты снифером глянь интерфейсы принимаемые, есть там чо на входе/на выходе (tcpdupm, wireshark) |
| Автор: redrover 18.10.2011, 18:06 |
| null56, спасибо вам за помощь! Проблема решена с помощью внедрения маршрутизации в DHCP на чистых машинах. |