Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2013, 19:28   #1
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию UDP нет обратной связи через шлюз

Доброго всем времени форумчане!
Не подскажите, пишу программку на WinSock работающую с UDP протоколом, столкнулся с проблемой, что UDP не открывает обратный порт как TCP, хотя когда белый адрес то все хорошо но через шлюз нет обратной связи. Не предлагать открытие порта в ручную в шлюзе, все должно открываться автоматом как в скайпе и прочих программ работающих с этим протоколом.
Заранее спасибо!
Aliens_wolfs вне форума Ответить с цитированием
Старый 24.10.2013, 19:51   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...изучить uPnP.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.10.2013, 20:54   #3
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Спасибо за то что откликнулись. Но uPnP нужно в шлюзе включать, я не хочу в шлюзе ничего включать и настраивать, с TCP все нормально а вот UDP должен как то порт на открытии держать ведь он же не делает соединение.
Цитата:
UPnP позволяет избавить пользователей от необходимости вручную настраивать таблицы сопоставления
В общем мне в моей програмке все же предется реализовывать включение UPnP. Может у кого есть наработки в этом направлении. Может у кого есть компонент для проброса портов или же включение UPnP

Последний раз редактировалось Aliens_wolfs; 24.10.2013 в 21:43.
Aliens_wolfs вне форума Ответить с цитированием
Старый 24.10.2013, 21:45   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Скайп как раз и осуществляет работу с указанной технологией, так что вам придется однозначно ее использовать для ваших желаний.

NATUPnPLib http://pietschsoft.com/post/2009/02/...outer-via-UPnP

Под Delphi есть готовая оберточка - UPnP Delphi Components.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 24.10.2013 в 21:48.
raxp вне форума Ответить с цитированием
Старый 25.10.2013, 08:21   #5
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Спасибо за компонент и за ответ!

Последний раз редактировалось Aliens_wolfs; 25.10.2013 в 08:24.
Aliens_wolfs вне форума Ответить с цитированием
Старый 27.10.2013, 11:04   #6
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Порывшись на просторах интеренета по поводу UPnP компонета так и не нашел нормально работающих модулей, в них что то как всегда нехватает нет полных компонентов, да и судя по отзывам работают они криво, может кто поделиться рабочими модулями.
Aliens_wolfs вне форума Ответить с цитированием
Старый 27.10.2013, 11:48   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Импортировать интерфейсы из COM/ActiveX объектов умеете? Вот берете системную upnp.dll и выделяете из нее хэдер UPNPLib_TLB.pas и практически дело в шляпе.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 27.10.2013, 16:58   #8
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Все понял, еще раз спасибо
Aliens_wolfs вне форума Ответить с цитированием
Старый 29.10.2013, 19:07   #9
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Возвращаюсь к этой теме.
Пробовал задавать объект использовать COM/ActiveX

Код:
deviceFinder:= CreateOleObject('UPnP.UPnPDeviceFinder'); // полет нормальный
 IUnknown(eEnum).QueryInterface(IID_IEnumVariant, pEnum); // полет нормальный
showmessage(eEnum.FriendlyName); // ошибка да и с другими функциями ошибки функции взял из описания в интернете
Напросторах интернета нашел немного информации, как использовать UPnP даже компонент нашел, но все это не работает, либо работает с ошибками и все пытаются найти рабочие примеры. Так же нашел интересные функции пытался их использовать но безрезультатно http://www.se.rit.edu/~rooms/FinalAr...annotated.html. Пытался найти описание функций всей библиотеки UPnP.dll что бы вызывать функции из нее но тоже ничего нет никаких описаний. Почитал про механизм SSDP полезная инфа про мультикаст. Проснифел программы торент и скайп и увидел их общение с роутером и понял, что наверное самому придется роутеру объявлять нужную инфу в заголовке.

кусок снифа
Цитата:
NOTIFY * HTTP/1.1
NT: upnp:rootdevice
USN: uuid:ecbf19f3-acf7-4ac3-b32d-aa1408745488::upnp:rootdevice
NTS: ssdp:byebye
HOST: 239.255.255.250:1900
Content-Length: 0, Result: Success
Может все же есть хоть часть примера, или наработки в этом направлении, спасибо!

Последний раз редактировалось Aliens_wolfs; 30.10.2013 в 08:53.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
форма обратной связи Ol'ga PHP 3 01.03.2013 12:40
Форма обратной связи Cone PHP 9 07.12.2011 07:47
кодировка обратной связи RAVAL(c) PHP 3 13.02.2011 20:11
Скрипт обратной связи Helen888 Фриланс 6 02.05.2010 11:11
Форма обратной связи belvision PHP 5 10.11.2008 16:57