![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
boobie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 16.9.2011 Репутация: нет Всего: нет |
Здравствуйте!
С помощью каких компонентов Indy (и не только) можно решить проблему с подключением к компьютеру, который находится за, например, роутером (т.е. при написании клиент-серверной программы). Как, зная IP адреса машины (и локальный, и внешний), сделать это? Ведь браузеры и, например, Skype как-то работают на таких машинах. Дополнительный проброс портов ручками на стороне, настройка роутера и пр. - это не то, что надо. Т.е. пользователь качает "Скайп, контру, браузер" и у него все работает сразу, из коробки. Как сделать так же ![]() По сути, эта тема - продолжение этой: http://forum.vingrad.ru/forum/topic-370935.html С сетью стал разбираться совсем недавно, сильно не пинайте. Теперь нужно создавать свой VPN? В какую сторону идти? Это сообщение отредактировал(а) boobie - 28.8.2013, 10:21 |
|||
|
||||
Illusion Dolphin |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 2 Всего: 63 |
А что если взяться за UPuP
Это очень хитрая программа, умеет UPuP, сама находит прокси, и говорят, что творит чудеса ![]()
UPuP думаю
А ему ничего не нужно, максимум прокси настроить
Зачем? -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
||||||||
|
|||||||||
boobie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 16.9.2011 Репутация: нет Всего: нет |
А как подключится к серверу за роутером? Использую открытые порты (80 и 443, те же, что и у скайпа, в надежде, что пройдет...) и не могу законнектится. Он может подключится ко мне, я - нет. У меня белый IP, у него белый ip у роутера. ПК подрублен к роутеру, у ПК локальный адрес. Тот же скайп работает нормально.
Да прочитал про UPnP, круто, но... Я догадываюсь, что проблема в непосредственной передаче данных от роутера к ПК. Я использую Idtcpserver\client указываю белые адреса. Т.е. мой чатик прекрасно работает в локальной сети или при использовании реальных IP адресов в интернете. Это сообщение отредактировал(а) boobie - 28.8.2013, 12:34 |
|||
|
||||
Illusion Dolphin |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 2 Всего: 63 |
Ну тогда можно попробовать использовать ещё "пассивный режим", когда всё делается через одно соединение. Т.е. чтобы взаимосвязываться он делает соединение к серверу чтобы получать данные с сервера и отправлять данные на сервер и второго соединения получается что не надо ![]() Добавлено через 2 минуты и 58 секунд
Это используется чтобы настроить проброс если такое поддерживается
А такое даже не обязательно. Можно даще использовать внешний сервер ак посредник (метод ICQ). Skype вообще траффик перегоняет через клиентов, которых благо много и у некоторых белые айпи ![]() -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
||||||
|
|||||||
boobie |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 16.9.2011 Репутация: нет Всего: нет |
Классно, и как это реализовать? Есть какие то компоненты в Делфях... Или на чистом Апи писать? Ссылки и литратура ф-ф-ф-ф-студию очень нужны.
А если делать сеть из 10-30 машин, то это ведь понадобится. Про UPnP бегло посмотрел. Трудно учится по отрывкам из гугла. Справочник бы какой... ![]() Литературы по сетевому программированию в Делфи так мало, может на С# ее больше? ![]() |
||||
|
|||||
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: нет Всего: 1 |
Советую почитать книгу "О чем не пишут в книгах по Delphi" там подробно рассказывается о написании сетевых приложений
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
Программа-сервер должна быть открыта и слушать, например, порт 80. Если программа за NAT`ом, то нужно выполнить переадресацию портов.
А клиент, зная внешний IP программы-сервера и порт, подключается. Т.е. одна из сторон должна глядеть наружу. На роутере, т.е. на маршрутизаторе, будь то модем или ПК, нужно выполнить переадресацию портов из вне в локальную сеть, на тот ПК, где работает серверная часть. Добавлено через 4 минуты и 11 секунд Если программа-клиент не знает внешнего IP, куда подключаться, то программа-сервер должна где-то указать свой внешний IP. Т.е. должен быть где-то третий сервер. Так сказать, связующий. С постоянным адресом. И клиент, и сервер к нему подключаются. Сервер оставляет там свой адрес, а клиент узнает адрес сервера. Можно сделать третий сервер без программы. Например, программа-сервер заходит по HTTP на какой-нибудь хост и в текстовом файле оставляет свой IP. Клиент тоже заходит туда и читает его. |
|||
|
||||
boobie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 16.9.2011 Репутация: нет Всего: нет |
Случайно заметил, что тема ожила.
Это должен делать хозяин машины "ручками", или это можно реализовать программно с помощью Дельфей? А если, например, провайдер предоставляет только серые IP-адреса, тогда между конечной машиной и белым адресом может оказаться не один NAT... Что тогда? UPnP представляется более простым способом... Достаточно иметь один сервер с реальным белым АйПи, все сообщения проходят через него. Но я с этим так и не разобрался. Хотя очень хочу, данная тема очень интересна и однозначно пригодится. |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: нет Всего: 28 |
Ручками. Вроде как UPnP позволяет автоматически сделать проброс портов на роутере, но данную возможность хозяин роутера может отключить. uTorrent, Steam и т.д. используют UPnP TeamViewer вроде как по такому принципу работает, только вот использует ли он UPnP или нет - не знаю. Это сообщение отредактировал(а) Vas - 13.11.2013, 07:07 -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
boobie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 16.9.2011 Репутация: нет Всего: нет |
Vas, как его реализовать? Примерчик какой-нибудь... А лучше мануал на русском=). Сколько книг читал - везде простейшие примеры применения Винсок и пара самых простых примеров на инди... И все!
![]() Вот мысль такая появилась, что если запилить книгу по Дельфям, такую, в которой РЕАЛЬНО будет собрано то, о чем не говорится в других книгах. ДРКБ - это хорошо, но, это как нарезка статеек и форумных цитат. Урывками. И там не все есть. И ничего не объясняется часто. Если все эксперты форума, которые неравнодушны к Дельфям объединятся и попробуют создать что-нибудь подобное. Без всяких описаний Хелловорлд и Баттон - об этом и так все сказано. А о сетевом программировании (инди и без инди), стандартных графических средствах, OPENGL.... не знаю... о многопотоке, там тоже много всяких хитростей. Мечты, мечты... |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: нет Всего: 28 |
boobie, нету примеров, только теорию знаю и все :(
Вот в сети попалось, но не тестил http://www.whitebear.ch/upnp.htm и вот http://www.sql.ru/forum/635125/upnp -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |