Russian Qt Forum
Ноябрь 23, 2024, 11:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QUdpSocket loop  (Прочитано 2924 раз)
RomiX
Гость
« : Июнь 26, 2013, 10:05 »

Здравствуйте. Пишу приложение общающееся с другими такими же приложениями по UDP, отправляя пакеты на broadcast адрес. Возникла такая проблема: при отправке пакета он тут же принимается отправляющей стороной. Поиск почти ничего не дал, кроме флага SIO_RCVALL но похоже установить его средствами Qt нельзя, да и не кросс платформенно в любом случае получается(
Вот кусочек кода
Код:
m_udp = new QUdpSocket(this);
m_udp->bind(7878, QUdpSocket::ShareAddress);
connect(m_udp, &QUdpSocket::readyRead, this, &ShxNetwork::processPendingDatagrams);
отправляю через этот же сокет вот так:
Код:
m_udp->writeDatagram(datagram.data(), datagram.size(), QHostAddress::Broadcast, 7878);
где datagram это QByteArray
Может кто знает как решить эту проблему? Заранее благодарен.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Июнь 26, 2013, 10:20 »

Так а в чем проблема? Вы отправляете датаграмму всем и себе в том числе (если сами слушаете этот порт).
Записан
Bepec
Гость
« Ответ #2 : Июнь 26, 2013, 10:20 »

Отсеивайте пакеты от себя. Вам жеж доступен текущий адрес компа + доступен адрес отправителя в пакете?
Записан
RomiX
Гость
« Ответ #3 : Июнь 26, 2013, 10:52 »

Спасибо=) Просто думал есть более изящный способ...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.126 секунд. Запросов: 23.