Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Куда посылать данные?


Автор: Antony41 1.4.2010, 10:23
Здравствуйте уважаемые программисты. Есть у меня приложения сервер и клиент. Используются компоненты TClientSocket и TServerSocket, уточнив у своего провайдера знаю что у меня динамический IP, а статический только для юрид. лиц. Мне необходимо установить связь между двумя компьютерами через интернет, так вот сам вопрос как мне установить связь??? какой IP и порт? напоминаю IP динамический, ну может хоть с использованием сторонних программ?

Автор: Snowy 1.4.2010, 11:44
если IP динамический, то нужен третий сервис со статическим IP, который скажет куда подключаться.
Простейший готовый вариант - http://www.google.ru/search?rls=ru&q=hamachi

Автор: Antony41 1.4.2010, 17:37
Snowy, Слов не хватает в благодарность!!! smile  Скажите пожалуйста если не трудно, всегда ли должен быть запущен хамачи и как я могу считывать тот IP адрес, который мне предоставил хамачи для вэб интерфейса? (порт по которому я устанавливаю связь я так понимаю придумываю сам?)

Автор: Antony41 2.4.2010, 18:28
Познакомился я с хамачи более менее, но это не то что мне нужно это одноранговая сеть и её хамачи я так понял придется устанавливать на каждом компьютере, мне нужно обеспечить связь например по протоколу TCP или через сокеты, при этом имея только динамический адрес, может существуют какие нибудь сервисы, для этого хоть и платные? ну должен быть выход?

Автор: Демо 2.4.2010, 19:24
Например - 
http://www.dyndns.com/services/dns/dyndns/
http://www.no-ip.com/services/managed_dns/free_dynamic_dns.html

Список - http://www.dmoz.org/Computers/Internet/Protocols/DNS/DNS_Providers/Dynamic_DNS/


Автор: Antony41 4.4.2010, 11:16
Немогу понять как ими пользоваться, вот сделал следующее зарегистрировался на no-ip добавил хостинг типа myname.no-ip.biz и делаю пинг тут http://network-tools.com всё пингуется, но я так понимаю это просто прикрепление днс сервера за моим динамическим IP адресом. Это тоже самое что прямое обращение к моему IP. Сканировал порты и видно следующее
Открыт порт --21 ! File Transfer Protocol [Control]
Открыт порт --23 ! Telnet
Открыт порт --80 ! World Wide Web HTTP

Все остальные закрыты, как быть?

Автор: Демо 4.4.2010, 14:41
Цитата(Antony41 @  4.4.2010,  11:16 Найти цитируемый пост)
Все остальные закрыты, как быть?


А что, другие порты у тебя какие-то сервисы слушают?

Автор: Antony41 4.4.2010, 14:50
У меня на компьютере сервер слушает порт например 1035, а эти порты слушаются провайдером

Я так понимаю на провайдере статический IP делится на несколько динамических мой один из них, и порты там все перекрыты что делать?

Автор: Antony41 4.4.2010, 15:12
Даже при использовании хамачи не удается установить связь

Автор: Antony41 4.4.2010, 22:58
так я понял  меня серый динамический ip возможно создать связь по протоколу? tcp или udp?

Автор: Snowy 5.4.2010, 11:27
Если ты находишся за роутером, то принимать входящие подключения возможно только внутри сети.
За её пределами ты существуешь только как клиент. Сервером быть не можешь в принципе.
Исключение может быть только, если ты имеешь возможность вносить в роутер какие-то настройки, например жёсткую привязку порта к своей машине.
Но это не тот случай...
Так что в таком случае единственный вариант - ставить сервер на другую машину в сети, к которой есть возможность подключиться.

Автор: Antony41 5.4.2010, 15:32
Прошу прощения через хамачи соединение установил, на myip.ru внешний адрес 188.19.8.192 этот адрес не входит в стандартную запись серых адресов.
Как можно проверить нахожусь я внутри сети за маршрутизатором, или все же IP остается серым?
Просто я думаю вряд ли мне ответят на этот вопрос в службе поддержки моего провайдера.

Автор: Snowy 5.4.2010, 15:53
http://2ip.ru/check-port/
если напишет, что порт закрыт, значит подключиться к тебе по этому порту нельзя.
возможно мешает роутер, прокси или файрвол...
Проверить можно лишь возможность подключения.
Разумеется, на твоей машине какая-нибудь программа должна принимать на этом порту подключения.

Автор: Antony41 5.4.2010, 18:46
Всё верно пишет на сайте порт открыт в соответствии с прослушивающим портом в сервер сокете. Сайт прослушивает порты моего вешнего IP адреса или локального?

Автор: Xenag 5.4.2010, 20:42
Сайт ничего не прослушивает.
Он просто делает попытку подключения снаружи.
Если он подключился, значит ничто не мешает подключиться и другим.

Автор: Antony41 6.4.2010, 15:50
Начинаю прослушивание порта 1025 в программе, затем захожу на сайт проверяю порт 1025 пишет что открыт, в программе показывает что было подключение. Всё верно.
Пере запускаю программу и снова слушаю данный порт 1025, затем пытаюсь подключиться клиентом к внешнему IP 188.19.8.192 port 1025, пишет Asynchronous socket error 10061. Указываю локальный IP 127.0.0.1 : 1025 Соединение установлено. ???

Подключение произвожу следующим образом 

В ServerSocket:
Код

Server.Port := 1025;
if not Server.Active  then
   Server.Open;  //или Server.Active := True;


В ClientSocket:
Код

Client.Host:='188.19.8.192';
Client.Port:=1025;
Client.Open;  //или Client.Active := True;


Скажите что я делаю не так? (Сервер и клиент запускаю на одном компьютере), мне остается думать что сайт http://2ip.ru/check-port/ использует локальное подключение, или я неправильно подключаюсь, но другого метода не знаю...

Автор: Snowy 7.4.2010, 11:20
Для чистоты экскримента нужно одключиться к себе с другой машины.
Ибо у тебя может быть закрыт этот порт наружу, или ещё что-то мешать исходящему подключению на внешний IP.
Сервис подключается не локально - проверено.
Если бы подключался локально, у тебя был бы одинаковый результат.
Может ещё в коде чегось напутал.
Возьми какой-нибудь гарантированно рабочий код или программу и проверь соединение.
Попробуй подключиться встроенным телнетом...

Автор: Antony41 8.4.2010, 09:02
Большое спасибо вам! Всё заработало сделал разные соединения через инет на разных компах, проверил на пинг, работает, выключил комп и снова проверил перестало работать, значит связь есть и IP белый динамический, поставил прослушивание порта, проверил через сайт открыт ли он, оказалось нет, сделал проброс порта в модеме, и всё наладилось. Ура.... Еще раз всем спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)