| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Как подключить TIdTCPClient чарез прокси-сервер |
| Автор: dx22 4.5.2008, 19:47 |
| Как можно организовать работу TIdTCPClient (indy 10) через прокси-сервер? (Клиент<->Прокси-сервер<->Сервер-приложение). |
| Автор: SneG0K 4.5.2008, 22:56 |
| Эээ... Да просто подключайся к прокси, а не к серверу... И уже на основе прокси передавай команды... |
| Автор: dx22 5.5.2008, 14:08 |
| TIdTCPClient <-TIdIOHandlerSocket <-TIdSocksInfo пробовал в indy9 TIdSocksInfo настраивал на прокси, а в TIdTCPClient указывал внешний ip и port сервера. не хочет соединяться ошибка 10061 в доступе отказано, Через IE на тойже машине все нормально работает, через тот же прокси. В чем может проблема быть? |
| Автор: SneG0K 5.5.2008, 14:13 |
| Да ну сказал уже, что соединяйся напрямую с проксиком! |
| Автор: Sanchezzz 5.5.2008, 19:40 |
| ошибка 10061 это ошибка то что он его не находит. 1 кидаешь на форму клиент сокет далее IdIOHandlerStack 2 кидаешь на форму IdSocksInfo вбиваешь все поля. обязательно укажи версию сокета 5. -- точно такжеи для http IdConnectThroughHttpProxy + свойство Enable:=true; Совет дня!!! Создавай сокеты динамически и подставляй меньше глюков будет... --- таких например как зацепился потом связь оборвалась и потом не можешь зацепится иза того что сокет не освободился пока дождешься минут 5 проходит а так сокет сразу убиваешь и его можно опять использовать... |
| Автор: dx22 6.5.2008, 14:23 |
| всем спасибо,разобрался, усё вроде заработало. для indy 10.1.5 использовал TIdTCPClient.IOHandler <- IdIOHandlerStack1.TransparentProxy <- TIdSocksInfo |
| Автор: alexstep 4.3.2011, 02:17 | ||
| Разобрался с этой темой. Написал инструкцию (Indy 10) для подключения прокси. Компоненты создаю динамически: //Create proxy object(HTTP/Socks) and init it's parameters //For UDP //Proxy.Enabled := True; //UDPClient.TransparentProxy := Proxy; //For TCP: Create IdIOHandlerStack //Assign IdIOHandlerStack.TransparentProxy = Proxy; //!!! Only now set to Enabled!!! It's reseted when TransparentProxy is assigned //Set IdIOHandlerStack.TransparentProxy.Enabled := True; //Set IdTCPClient.IOHandler := IdIOHandlerStack;
|