Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 294

/ вопрос открыт /

Здравствуйте!

Необходимо обеспечить связь между компьютерами через Интернет для обмена файлами и другими данными. Компьютеры работают через прокси-сервер. Подключение работает, когда Клиент через прокси, но если Сервер через прокси, то подключение отсутствует.

Приложение:
  1.  
  2. {{code|delphi}}
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10. IdIOHandlerStack := TIdIOHandlerStack.Create(nil);
  11. IdIOHandlerStack.TransparentProxy := IdConnectThroughHttpProxy;
  12. IdIOHandlerStack.TransparentProxy.Enabled := True;
  13. IdTcpClient.IOHandler := IdIOHandlerStack;
  14. IdTcpClient.Connect;
  15. {{/code}}
  16.  
  17.  
  18. {{code|delphi}}
  19.  
  20. IdTcpServer.Active := True;
  21. {{/code}}
  22.  
  23.  


VKHacker Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: VKHacker (статус: 1-ый класс)
Вопрос отправлен: 26 октября 2012, 15:41
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

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

Поэтому, для решения этой ситуации давно известно правильное решение - называется "переброска порта". Такую вещь делает многие роутеры. Но публичные прокси серверы - нет (это большая дыра в безопасности). Но если у Вас есть свой сервер и доступ к его фаерволу - то все можно настроить.

Итого, в целом. Сервер через http прокси работать не будет, применять настройки не имеет смысла.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 29 октября 2012, 14:56


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 29 мая 2023, 18:45
Выполнено за 0.02 сек.
Рейтинг@Mail.ru