Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2010, 17:42   #1
Terikon
Форумчанин
 
Регистрация: 22.02.2009
Сообщений: 174
Восклицание IdTCPServer,IdTCPClient, какой хост указать

У меня соединение через роутер, его IP 192.168.0.1, а ip который отображается например при проверке IP, 201.35.89.87,
Вопрос в следующем какой IP мне использовать в клиенте\сервере

вот код клиента, на локал хосте всё работает

Код:
idtcpclnt1.Host:='127.0.0.1';
idtcpclnt1.Port:=12000;
idtcpclnt1.Connect;
idtcpclnt1.Socket.WriteLn('ftghfh');
idtcpclnt1.Disconnect;
Terikon вне форума Ответить с цитированием
Старый 17.08.2010, 09:49   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Вопрос в следующем какой IP мне использовать в клиенте\сервере
для работы и клиента и сервера по внутреннюю сторону от свича - пользуйте 192.168.0.1. При работе клиента и сервера "все равно где" - пользуйте внешний ip адрес, и настраивайте port forwarding на свиче.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.08.2010, 23:41   #3
Terikon
Форумчанин
 
Регистрация: 22.02.2009
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
для работы и клиента и сервера по внутреннюю сторону от свича - пользуйте 192.168.0.1. При работе клиента и сервера "все равно где" - пользуйте внешний ip адрес, и настраивайте port forwarding на свиче.
Скажите что делаю не так? если указываю внешний IP выдаёт 'Connektion refused'

Настройки роутера


Сервер


Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
idtcpsrvr1.Active:=true;
end;
procedure TForm1.idtcpsrvr1Execute(AContext: TIdContext);
var
s:string;
begin
s:=AContext.Connection.Socket.ReadLn;
ShowMessage(s);
end;
end.
Клиент

Код:
idtcpclnt1.Host:='201.35.89.87'; \\\если указать 198.168.0.100 или 127.0.0.1 то всё работает, но с удалённого компа не хочет(
idtcpclnt1.Port:=12000;
idtcpclnt1.Connect;
idtcpclnt1.Socket.WriteLn('ftghfh');
idtcpclnt1.Disconnect;
Terikon вне форума Ответить с цитированием
Старый 18.08.2010, 07:29   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Со своего компа по своему внешнему айпи вы не подключитесь...
p51x вне форума Ответить с цитированием
Старый 18.08.2010, 09:33   #5
Terikon
Форумчанин
 
Регистрация: 22.02.2009
Сообщений: 174
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Со своего компа по своему внешнему айпи вы не подключитесь...
Да я знаю об этом, я пытаюсь подключится с удалённого компа, а со своего работает тока через локалхост.
Terikon вне форума Ответить с цитированием
Старый 18.08.2010, 10:22   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Все проверки делаются telnet-ом. Исключите сначала ошибки вашего приложения. Для этого с удаленного компьютера подключитесь к вашему серверу с помощью комманды telnet <ip> <port>
И посмотрите что вам на этой скажет Windows.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 18.08.2010, 14:34   #7
Terikon
Форумчанин
 
Регистрация: 22.02.2009
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
Все проверки делаются telnet-ом. Исключите сначала ошибки вашего приложения. Для этого с удаленного компьютера подключитесь к вашему серверу с помощью комманды telnet <ip> <port>
И посмотрите что вам на этой скажет Windows.
Запускаю у себя сервер, на удалённом компе ввожу в cmd telnet 201.35.89.87 12000 выдаёт 'Не удалось открыть подключение к этому узлу, на порт 12000: Сбой подключения'

В роутере порт прописал, что ещё нужно?
Terikon вне форума Ответить с цитированием
Старый 18.08.2010, 14:50   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Вывод- где- то закрыт порт... самый логичный ответ - файрвол....
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.08.2010, 12:32   #9
Terikon
Форумчанин
 
Регистрация: 22.02.2009
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
Вывод- где- то закрыт порт... самый логичный ответ - файрвол....
Спасибо, буду разбираться, если я в своей программе укажу порт 80 думаю не придётся указывать порт в роутере и отключать фаервол т.к. порт в роутере открыт и в фаерволе тоже. или нужно использовать какой то определённый порт?
Terikon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
INDY: IdTCPServer и IdTCPClient. Передача TStream SNUPY Работа с сетью в Delphi 2 27.12.2009 13:31
IdTcpClient и idTcpServer xTANATOSx Работа с сетью в Delphi 9 17.05.2008 23:11
передача файла от idtcpclient к idtcpserver SeЯgey Работа с сетью в Delphi 1 13.05.2008 11:21
Обмен сообщениями между IdTcpClient и idTcpServer Teen4jump Работа с сетью в Delphi 3 05.09.2007 09:25