-
Здравствуйте, пишу программу на делфи, стала надобность, чтобы программа работала через прокси-сервер, тоесть нужно в программу добавить настройку Прокси (ИП, Порт, Логин, Пароль).
Ноги растут от того, что есть сервер(Имеет статический ИП) и есть клиент(работает в сети с выходом в интернет через прокси), нужно конектить сервер-клиент через сокеты(если и у клиента статический ИП, то все работает нормально, а через прокси-сервер нет)
-
Хрень какая-то ...
Клиенту статический адрес нафих не нужен. И прокси-серверу тоже безразлично статический ли у его клиента адрес.
-
Вопрос то какой?
-
Протокол какой? не HTTP поди...
-
> Протокол какой? не HTTP поди...
Программы (сервер и клиент) написаны с помощью компонентов TServerSocket и TClientSocket, если у клинта статический ИП(Украина-Симферополь) и у сервера (домашняя машина имеет постоянный статический ИП-Украина-Харьков), то передача данных (текст, картинки и т.п.) между машинами идет нормально, тоесть через интернет все работает, но когда я запускаю клиента на машине с выходом в интернет через прокси, то естественно связь не устанавливается.
Как обойти это дело???
В интернете пишут, что может помочь Indy, но примеры везде для TwebBrowser-ов.
-
Да и еще мне не требуется загрузка сайтов с сервера и все этой белеберды, мне нужно конкретно обмен текстом, картинка, музыкой и т.п. между, допустим, двумя клиентами в разных частях планеты через сервер (как я говорил компьютер-сервер со статическим ИП).
-
> когда я запускаю клиента на машине с выходом в интернет
> через прокси
Не вижу абсолютно никакой связи между статичностью ip-адреса хоста клиента и работой через прокси.
Вот как только прояснишь эту связь - тогда и рекомендации будут ..
-
> Не вижу абсолютно никакой связи
<mode telepat="ON">
Тот хитрый клиент, похоже, к внешней сети вообще не подключён, а "выходом в интернет через прокси" здесь называется доступ к HTTP из внутренней сети через HTTP-прокси.
</mode>
В таком случае товарища спасёт NAT.
Ну, или попробовать из него выпытать внятное описание конфигурации сети.
-
Поддержка работы клиента через прокси-сервер сводится к реализации в приложении-клиенте протокола взаимодействия с тем или иным конкретным типом прокси.
Т.е. ты должен научить свою клиентскую программу работать через как минимум HTTP(S)-, SOCKS4- и SOCKS5-прокси, с авторизацией или без нее.
-
> Т.е. ты должен научить свою клиентскую программу работать
> через как минимум HTTP(S)-, SOCKS4- и SOCKS5-прокси, с авторизацией
> или без нее.
А можно поподробнее с этого момента. Я запускаю клиента на работе, здесь всем раздали ип(мой внутренний 192.168.0.98), но выход в интернет через прокси сервер (у нас он 192.168.0.1) с авторизацией, как мне добавить или где почитать как добавить в программу-клиент HTTP(S)-, SOCKS4- и SOCKS5-прокси с авторизацией или без нее???
-
> Не вижу абсолютно никакой связи между статичностью ip-адреса
> хоста клиента и работой через прокси.
Я так понял, что вы меня не правильно поняли, когда я говорил, что у клиента статический ИП, я подразумевал, что клиент со стат ИП работает не через прокси, а имеет прямой выход в интернет.
-
> Sanprof (24.09.2010 11:20:10) [10]
Чудо
-
> Sanprof (24.09.10 11:20) [10]
Т.е. делаем вывод, что статику адреса ты упомянул всуе)
> как мне добавить или где почитать
Если не хочешь отказываться от TClientSocket, то гугли и штудируй все касаемое протоколов SOCKS4, SOCKS5, HTTP(S)
В противном случае я бы посоветовал использовать библ-ку Synapse - там поддержка различных типов прокси уже интегрирована.
-
> В противном случае я бы посоветовал использовать библ-ку
> Synapse - там поддержка различных типов прокси уже интегрирована.
>
ОК, я тогда почитаю по этому поводу, если че не пойму здесь отпишусь.
-
а еще не подскачете, где можно найти хорошо написанную статейку по Indy по использованию прокси (только не для TWebBrowser-а)??? Думаю как вариант заменить TClientSocket на TIdTCPClient, а TServerSocket на TIdTCPServer. Indy же поддерживает работу через прокси или я ошибаюсь???
-
Нафих тебе этот монстр - Indy ? Геморрой легко зарабатывается, но тяжело поддается лечению
Бери на вооружение Synapse !
Там все прокси-хозяйство реализовано изящно и интуитивно понятно.
-
> Sanprof (24.09.2010 12:06:14) [14]
Кроме информации на сайте авторов, практически негде. Статьи обычно не
копируют, а по Инди в особенности.
И когда ты говоришь прокси, то называй какой именно, может и не работает.
-
> Anatoly Podgoretsky © (24.09.10 12:30) [16]
>
> И когда ты говоришь прокси, то называй какой именно, может
> и не работает.
Если честно, то я не знаю какой, а какой лучше подходит для соединения между ClientSocket и SeverSocket???
-
> Если честно, то я не знаю какой
Если не знаешь какой тип прокси даже у тебя на работе, то как же ты собрался поддерживать работу своего клиента через прокси с произвольного хоста ?
Придется реализовывать поддержку всех широкораспространенных, в числе которых вышеупомянутые.
> какой лучше подходит для соединения между ClientSocket и SeverSocket?
Им по барабану. Они про прокси вообще ничего не знают, ибо работают на транспортном уровне. А ПРокси-протоколы - это уже прикладной уровень.
В любом случае при использовании этих компонентов придется ручками реализоввать поддержку прокси.
-
> Сергей М. © (24.09.10 12:55) [18]
>
> Если не знаешь какой тип прокси даже у тебя на работе
А его как-то можно узнать без помощи администратора?