IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Проблема с клиент-сервером
legat
сообщение 6.10.2010 20:46
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Сергей

Репутация: -  1  +


Есть клиент-серверное приложение, и в функционале есть чат(личка). Этот чат надо переделать под .net remoting, чтоб клиенты посылали сообщения друг-другу напрямую, не напрягая лишний раз сервак, для это с сервака каждому клиенту посылаются айпи его друзей. Проблема в следующем, если один из клиентов сидит за роутером, то получается с сервака( сервер на с++) отправить лишь айпи роутера
(Function returned:
Official name: homeuser52-36.ccl.perm.ru
Address type: AF_INET
Address length: 4
IPv4 Address #1: 62.16.52.36)
по которому начать взаимодействие клиенты не могут. Как получить полный адрес клиента?
З.Ы. Настройки роутера трогать нельзя.
Оба клиента подключены к серверу, у него есть их адреса, необходимо связать их между собой напряую.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
мисс_граффити
сообщение 7.10.2010 10:20
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Lapp, я про сервис, который называется dynDNS (сайтик то же, только с com). Наверняка есть аналоги, но я лично только с ним сталкивалась.

Про переброску порта - ну, по условию нельзя трогать настройки роутера...

Сообщение отредактировано: мисс_граффити - 7.10.2010 10:21


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 7.10.2010 10:28
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(мисс_граффити @ 7.10.2010 11:20) *
я про сервис, который называется dynDNS (сайтик то же, только с com). Наверняка есть аналоги, но я лично только с ним сталкивалась.
ессно, я тоже про него. Есть и другие (я сижу на NoIP). Они все используют dynamic DNS как основу. Но я не могу взять в толк, как оно тут поможет. дело же не в трудностях с запоминанием численного адреса..

Цитата
Про переброску порта - ну, по условию нельзя трогать настройки роутера...
.. и не надо, NAT все сделает за тебя ))


Добавлено через 19 мин.
Цитата(legat @ 7.10.2010 11:25) *
"Самостоятельно инициировать соединение внешний узел не в состоянии, поскольку NAT просто не знает, на какой внутренний IP и порт следует транслировать неожиданно сваливавшийся UDP-пакет.
Эта проблема решается протоколом TURN (Traversal Using Relay NAT) "
Сюда копать?
Нет. Тут речь идет об ИНИЦИАЦИИ СНАРУЖИ. Это действительно непросто. У тебя же не тот случай.

Смотри.

1. внутренний хост А с адресом 192.168.0.5 хочет связаться с сервером С.

2. он шлет пакет на С, в котором обозначены ЕГО айпи и порт, т.е., например, 192.168.0.5:1234

3. NAT-раутер Р (с внешним айпи 5.6.7.8) заменяет исходящие параметры на свой айпи и произвольно выбранный свободный порт: 5.6.7.8:4321

4. с этого момента он слушает свой порт 4321

5. все пакеты, полученные на этот порт, онтправляет на А:1234

Вот, примерно так.. Точнее, так, кажется, работает PAT, который есть часть NAT.
Эта схема позволяет рассортировать входящий трафик. В твоем случае, сервер С, получивший пакет от А, должен послать его айпи И ПОРТ хосту Б. Хост Б шлет на эти входные параметры.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
legat   Проблема с клиент-сервером   6.10.2010 20:46
Lapp   Как получить полный адрес клиента? Хороший вопрос ...   6.10.2010 22:40
мисс_граффити   посмотри в сторону dynDNS... либо можно попробоват...   7.10.2010 7:52
Lapp   посмотри в сторону dynDNS... либо можно попробоват...   7.10.2010 9:40
legat   Нашел вот такое: "На атомарном уровне структу...   7.10.2010 10:00
Lapp   Кажется придется сделать подобное.Н-да.. дурная г...   7.10.2010 10:08
мисс_граффити   Lapp, я про сервис, который называется dynDNS (сай...   7.10.2010 10:20
Lapp   я про сервис, который называется dynDNS (сайтик то...   7.10.2010 10:28
legat   "Самостоятельно инициировать соединение внешн...   7.10.2010 10:25
legat   Ок, спасибо, будем пробывать   7.10.2010 14:55
legat   В общем ситуация такая: Клиент А,который за Nat, у...   7.10.2010 20:00
Lapp   В общем ситуация такая: Клиент А,который за Nat, у...   7.10.2010 23:13
legat   Я вроде понял, как что устроено. У меня не получ...   7.10.2010 23:46
Lapp   А чем тебя не устраивает общение через порт А:5555...   8.10.2010 0:30
legat   Спасибо за быстрый ответ=) Такая идея меня тоже по...   8.10.2010 0:41
Lapp   мне необходимо, чтобы связь между клиентами шла че...   8.10.2010 1:48
legat   Сделали вот по этой схеме, все бы хорошо, но есть...   8.10.2010 22:35
Lapp   nat все также не пускает к клиенту А, до тех пор, ...   8.10.2010 22:44
legat   Да Решили, где возможно делать по udp, а если соо...   8.10.2010 23:02


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 11:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"