Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преодоление препятствий. Роутеры и серые IP 
:(
    Опции темы
boobie
Дата 28.8.2013, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 16.9.2011

Репутация: нет
Всего: нет



Здравствуйте!
С помощью каких компонентов Indy (и не только) можно решить проблему с подключением к компьютеру, который находится за, например, роутером (т.е. при написании клиент-серверной программы).
Как, зная IP адреса машины (и локальный, и внешний), сделать это?
Ведь браузеры и, например, Skype как-то работают на таких машинах.

Дополнительный проброс портов ручками на стороне, настройка роутера и пр. - это не то, что надо. Т.е. пользователь качает "Скайп, контру, браузер" и у него все работает сразу, из коробки. Как сделать так же  smile ? 

По сути, эта тема - продолжение этой: http://forum.vingrad.ru/forum/topic-370935.html

С сетью стал разбираться совсем недавно, сильно не пинайте. Теперь нужно создавать свой VPN? В какую сторону идти?


Это сообщение отредактировал(а) boobie - 28.8.2013, 10:21
PM   Вверх
Illusion Dolphin
Дата 28.8.2013, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 2
Всего: 63



А что если взяться за UPuP

Цитата

Скайп

Это очень хитрая программа, умеет UPuP, сама находит прокси, и говорят, что творит чудеса smile К тому же она использует "авторизационные" сервера, которые могут помогать маршрутизации в теории. 

Цитата

контру

UPuP думаю

Цитата

браузер

А ему ничего не нужно, максимум прокси настроить

Цитата

создавать свой VPN?

Зачем?


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
boobie
Дата 28.8.2013, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 16.9.2011

Репутация: нет
Всего: нет



А как подключится к серверу за роутером? Использую открытые порты (80 и 443, те же, что и у скайпа, в надежде, что пройдет...) и не могу законнектится. Он может подключится ко мне, я - нет. У меня белый IP, у него белый ip у роутера. ПК подрублен к роутеру, у ПК локальный адрес. Тот же скайп работает нормально. 
Да прочитал про UPnP, круто, но...
Я догадываюсь, что проблема в непосредственной передаче данных от роутера к ПК.
Я использую Idtcpserver\client указываю белые адреса. 

Т.е. мой чатик прекрасно работает в локальной сети или при использовании реальных IP адресов в интернете.

Это сообщение отредактировал(а) boobie - 28.8.2013, 12:34
PM   Вверх
Illusion Dolphin
Дата 28.8.2013, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 2
Всего: 63



Цитата

 Он может подключится ко мне, я - нет.

Ну тогда можно попробовать использовать ещё "пассивный режим", когда всё делается через одно соединение. Т.е. чтобы взаимосвязываться он делает соединение к серверу чтобы получать данные с сервера и отправлять данные на сервер и второго соединения получается что не надо smile

Добавлено через 2 минуты и 58 секунд
Цитата

Да прочитал про UPnP, круто, но...

Это используется чтобы настроить проброс если такое поддерживается

Цитата

Я догадываюсь, что проблема в непосредственной передаче данных от роутера к ПК.

А такое даже не обязательно. Можно даще использовать внешний сервер ак посредник (метод ICQ). Skype вообще траффик перегоняет через клиентов, которых благо много и у некоторых белые айпи smile Координируется я думаю через внешние сервера у него


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
boobie
Дата 29.8.2013, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 16.9.2011

Репутация: нет
Всего: нет



Цитата

Ну тогда можно попробовать использовать ещё "пассивный режим", когда всё делается через одно соединение. Т.е. чтобы взаимосвязываться он делает соединение к серверу чтобы получать данные с сервера и отправлять данные на сервер и второго соединения получается что не надо

Классно, и как это реализовать? Есть какие то компоненты в Делфях... Или на чистом Апи писать? Ссылки и литратура ф-ф-ф-ф-студию очень нужны.
Цитата

Это используется чтобы настроить проброс если такое поддерживается

А если делать сеть из 10-30 машин, то это ведь понадобится. Про UPnP бегло посмотрел. Трудно учится по отрывкам из гугла. Справочник бы какой...
 smile 
Литературы по сетевому программированию в Делфи так мало, может на С# ее больше? smile 
PM   Вверх
Antony41
Дата 30.10.2013, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



Советую почитать книгу "О чем не пишут в книгах по Delphi" там подробно рассказывается о написании сетевых приложений
PM MAIL   Вверх
Akella
Дата 4.11.2013, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Программа-сервер должна быть открыта и слушать, например, порт 80. Если программа за NAT`ом, то нужно выполнить переадресацию портов.
А клиент, зная внешний IP программы-сервера и порт, подключается.
Т.е. одна из сторон должна глядеть наружу.

Цитата(boobie @  28.8.2013,  12:12 Найти цитируемый пост)
А как подключится к серверу за роутером?

На роутере, т.е. на маршрутизаторе, будь то модем или ПК, нужно выполнить переадресацию портов из вне в локальную сеть, на тот ПК, где работает серверная часть.

Добавлено через 4 минуты и 11 секунд
Если программа-клиент не знает внешнего IP, куда подключаться, то программа-сервер должна где-то указать свой внешний IP.
Т.е. должен быть где-то третий сервер. Так сказать, связующий. С постоянным адресом. И клиент, и сервер к нему подключаются. Сервер оставляет там свой адрес, а клиент узнает адрес сервера.
Можно сделать третий сервер без программы. Например, программа-сервер заходит по HTTP на какой-нибудь хост и в текстовом файле оставляет свой IP. Клиент тоже заходит туда и читает его.
PM MAIL   Вверх
boobie
Дата 13.11.2013, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 16.9.2011

Репутация: нет
Всего: нет



Случайно заметил, что тема ожила.
Цитата

Если программа за NAT`ом, то нужно выполнить переадресацию портов.

Это должен делать хозяин машины "ручками", или это можно реализовать программно с помощью Дельфей?
А если, например, провайдер предоставляет только серые IP-адреса, тогда между конечной машиной и белым адресом может оказаться не один NAT... Что тогда?

UPnP представляется более простым способом... Достаточно иметь один сервер с реальным белым АйПи, все сообщения проходят через него. Но я с этим так и не разобрался. Хотя очень хочу, данная тема очень интересна и однозначно пригодится.
PM   Вверх
Vas
Дата 13.11.2013, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: нет
Всего: 28



Цитата(boobie @  13.11.2013,  05:59 Найти цитируемый пост)
Это должен делать хозяин машины "ручками", или это можно реализовать программно с помощью Дельфей?

Ручками. 

Цитата(boobie @  13.11.2013,  05:59 Найти цитируемый пост)
UPnP представляется более простым способом...  

Вроде как UPnP позволяет автоматически сделать проброс портов на роутере, но данную возможность хозяин роутера может отключить. uTorrent, Steam и т.д. используют UPnP

Цитата(boobie @  13.11.2013,  05:59 Найти цитируемый пост)
Достаточно иметь один сервер с реальным белым АйПи, все сообщения проходят через него. Но я с этим так и не разобрался. Хотя очень хочу, данная тема очень интересна и однозначно пригодится. 

TeamViewer вроде как по такому принципу работает, только вот использует ли он UPnP или нет - не знаю.

Это сообщение отредактировал(а) Vas - 13.11.2013, 07:07


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
boobie
Дата 13.11.2013, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 16.9.2011

Репутация: нет
Всего: нет



Vas, как его реализовать? Примерчик какой-нибудь... А лучше мануал на русском=). Сколько книг читал - везде простейшие примеры применения Винсок и пара самых простых примеров на инди... И все!
 smile 
Вот мысль такая появилась, что если запилить книгу по Дельфям, такую, в которой РЕАЛЬНО будет собрано то, о чем не говорится в других книгах. ДРКБ - это хорошо, но, это как нарезка статеек и форумных цитат. Урывками. И там не все есть. И ничего не объясняется часто. Если все эксперты форума, которые неравнодушны к Дельфям объединятся и попробуют создать что-нибудь подобное. Без всяких описаний Хелловорлд и Баттон - об этом и так все сказано. А о сетевом программировании (инди и без инди), стандартных графических средствах, OPENGL.... не знаю... о многопотоке, там тоже много всяких хитростей. Мечты, мечты...
PM   Вверх
Vas
Дата 13.11.2013, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: нет
Всего: 28



boobie, нету примеров, только теорию знаю и все :( 
Вот в сети попалось, но не тестил  
http://www.whitebear.ch/upnp.htm и вот http://www.sql.ru/forum/635125/upnp



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0898 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.