crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QUdpSocket
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
niXman Дата 28.6.2009, 23:14
  Да.
flankerr Дата 28.6.2009, 21:17
  у меня пока не было времени более детально мультикаст протестить.
А так есть вариант ограничить максимальное число локальных приложений и выделить каждому свой отдельный порт и рассылать на заданный диапозон портов. Конечно не совем то что хотелось но как вариант.
niXman Дата 26.6.2009, 21:28
  Тупик! Я поднимал эту тему.
http://forum.vingrad.ru/topic-217764.html
flankerr Дата 26.6.2009, 19:16
 
Цитата(mva @ 26.6.2009, 19:29) *
Если предположить, что на один порт можно "повесить" несколько приложений,

А елси просто почитать эту тему то можно не просто предположить а точно знать.
QUdpSocket::ReuseAddressHint|QUdpSocket::ShareAddress

Цитата
то как по-твоему ОС, не важно какая, должна определить какому именно приложению отдать принятый пакет?

прямо в цель! по логике должна отдать ВСЕМ. но почему то этого не делает... А отдаёт только одному и как ОС определяет в какой сокет отдать пока загадка.

Цитата
Так что ничего из этой затеи не выйдет. Учи протокол TCP/IP.

Возможно и не выйдет и разумеется учение свет :) Но таки то что на один порт можно повесить несколько сокетов вдохновляет на поиски ;)
mva Дата 26.6.2009, 18:29
 
Цитата(flankerr @ 26.6.2009, 18:45) *
как послать udp пакет чтобы его "поймали" все приложения запущеные на данном компе и слушающие порт на который был послан пакет


Если предположить, что на один порт можно "повесить" несколько приложений, то как по-твоему ОС, не важно какая, должна определить какому именно приложению отдать принятый пакет? Протокол UDP означает только то, что пакет предназначен всем компьютерам подсети, а не то, что всем приложениям на каждом компе. Пакет IP (в теле которого записан UDP пакет) имеет атрибут "порт получателя", по которому ОС определяет, какому приложению его отдать.

Так что ничего из этой затеи не выйдет. Учи протокол TCP/IP.
flankerr Дата 26.6.2009, 17:45
  на сколько я знаю это только в виндах локальные пакеты минуют сетевую карту - хотямогу ошибаться.
Broadcast всётаки касается нескольких компов - а тут вопрос локальной машины. Хотя надо попробывать.
SABROG Дата 26.6.2009, 17:40
  Тогда, насколько я понял примеры Broadcast Receiver Example/Broadcast Sender Example разобраны и проблема здесь в том, что на локальной машине пакеты передающиеся на неё же минуют сетевую карту вообще. Эта таже проблема почему так мало снифферов, которые могут ловить локальный траффик, а те что существуют используют хак, а не promiscuous mode сетевой карты.
flankerr Дата 26.6.2009, 17:34
 
Цитата(SABROG @ 26.6.2009, 18:28) *
А разве несколько программ могут открыть все один и тот же порт?

QUdpSocket::bind(int port,QUdpSocket::ReuseAddressHint|QUdpSocket::ShareAddress);
SABROG Дата 26.6.2009, 17:28
  А разве несколько программ могут открыть все один и тот же порт?
flankerr Дата 26.6.2009, 17:07
  как послать udp пакет чтобы его "поймали" все приложения запущеные на данном компе и слушающие порт на который был послан пакет ?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 22:49