![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
kibr3 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 5.11.2009 Репутация: нет Всего: нет |
Не могу послать UDP пакеты через роутер помогите.
Есть 2 простые программы. Одна посылает UDP пакеты (Client) другая принимает (Server). Через порт 5904 или любой другой свободный. Все это прекрасно работает в локальной сети. Чтобы проверить как работает через интернет сделал следующее. В Map-e Роутерa прописал пересылать все пакеты (TCP и UDP) приходящие извне на порт 5904 на внутренний адрес 192.168.0.4. Проверил это из браузера (TCP/IP) через внешний прокси сервер - все хорошо, связь есть. Но вот посылаю UDP пакеты на свой внешний IP по порту 5904 и они теряются и не доходят вообще. По идее должны же приходить? Или я что-то не понимаю. Программа Client консоли для Visual C ниже.
|
|||
|
||||
Олег2005 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
Рутер получает пакет, анализирует его - и как видит порт 5904 - меняет адрес получателя на 192.168.0.4 - и далее должен отослать пакет по этому же самому порту (т.е. приложению, идентифицированному этим портом). Вроде так.
Надо сниффером посмотреть - приходят ли на карточку вообще пакеты... |
|||
|
||||
kibr3 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 5.11.2009 Репутация: нет Всего: нет |
Сниффером посмотрел. Если посылаю на внешний IP роутера то пакеты идут. Но далее тишина. Да еще заметил что когда посылал на свой же IP 192.168.0.4 якобы для проверки то пакеты вообще не шли в сеть но запущенный UDP сервер принимал все. То есть дальше сетевой карты не уходило. Выходит даже для первичной проверки надо отсылать из другого компа в локльной сети. Но так у меня тоже работает. Тут шеф (менеджер) оказывается бывший сетевик и провайдер говорит что нынешние модемы не могут пересылать никакие данные изнутри по внешнему IP даже если замаппировано. Вот раньше у него был модем-роутер от Cisco который это умел через какие-то настройки. Щас ищу варианты проверки своей UDP программульки и игр с ним. Надо посылать и принимать откуда-то извне пакеты. Варианты: 1. Apach сервер с реальным IP ставить у себя как предлагает шеф не хочется. Долго возиться. 2. Socks5 прокси. Но там тоже надо протокол связи с ним фигачить. Хорошо бы библиотеки иметь для него. 3. Взять хостинг с поддержкой socket_sendto и подобных функций но это Shell access и за недорого пока не нахожу. Какие есть идеи на этот счет? |
|||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: нет Всего: 13 |
Если ходит в локалке, то и по интернету будет путешествовать...
Добавлено @ 13:20
Это сообщение отредактировал(а) Леопольд - 12.9.2011, 13:22 -------------------- вопросов больше чем ответов |
|||
|
||||
Олег2005 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
Согласен. Но ведь никто заранее не скажет мне, что на порту 55555 сидят 10 машин? Поэтому попробовать всегда надо.... Но вот когда не получается - надо искать иные способы. А это непросто. Добавлено @ 17:42
Это все-таки оптимальнее всех иных методов. Да и не так сложно поднять Апач. Это сообщение отредактировал(а) Олег2005 - 12.9.2011, 17:43 |
||||
|
|||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |