| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > простейший браузер с прокси |
| Автор: Great Cornholio 19.6.2008, 23:21 |
| нужно создать простейший веб браузер с использованием прокси-серверов. Как это сделать? |
| Автор: Alca 20.6.2008, 00:19 |
| A Simple Http Proxy Server.zip |
| Автор: Great Cornholio 20.6.2008, 22:57 |
| хм, что-то ниасилил, как юзать(и вообще, что это конкретно?). |
| Автор: gather 21.6.2008, 01:02 |
WEB программирование в полном понятии данного слова тут не причем. Вам необходимо понять как работает Proxy сервер. Как происходит обмен данными между браузером и сервером, на котором находится сайт. Это для начала. А потом можно уже дальше делать. Да, и еще, все таки стоит учить язык программирования, а не пытаться "выехать" на кусках кода, непонятно как работающих. |
| Автор: Great Cornholio 22.6.2008, 22:15 |
| хм. Да, наверное надо. Ну, хотя бы подскажите, какие компоненты надо юзать. |
| Автор: gather 26.6.2008, 09:40 |
| Great Cornholio, sockets, RFC. Только это не визуальные компоненты. |
| Автор: Great Cornholio 28.6.2008, 12:29 |
| А само окно браузера - TCppWebBrowser? |
| Автор: Alca 1.9.2008, 10:27 |
| http://www.compdoc.ru/prog/cpp/proxyserver/ |
| Автор: gather 1.9.2008, 21:03 | ||
Ему не нужен сам прокси. Надо поддержку прокси. Следовательно, прочитать документацию на Socks и HTTP проксирование. |
| Автор: Alca 2.9.2008, 16:16 | ||||||||||
| коннект через SOCKS4/5 прокси Этот класс наследован от CSocket и позволяет устанавливать коннект через SOCKS4/5 прокси. Для того, чтобы установить соединение с сервером через прокси Вам достаточно вызвать всего одну функцию: Этот класс наследован от CSocket и позволяет устанавливать коннект через SOCKS4/5 прокси. Для того, чтобы установить соединение с сервером через прокси Вам достаточно вызвать всего одну функцию:
Параметры следующие: - nProxyType указывает тип прокси, PROXYTYPE_SOCKS4 или PROXYTYPE_SOCKS5 - следующие два параметра указывают параметры прокси - следующие три параметра необязательны. Они указывают, есть ли авторизация на SOCKS5. Так же класс содержит следующие функции: GetProxyPeerName Наподобие GetPeerName в CAsyncSocket, но возвращает адрес сервера, с которым установлен коннект через прокси.
Используется ли прокси?
Возвращает последнюю ошибку прокси Если Вы захотите использовать CSocksifiedSocket в качестве listen socket, то Вам необходимо переопределить следующую функцию: virtual BOOL Listen(unsigned long serverIp,unsigned long &retProxyIp,int &retProxyPort); serverIP это IP сервера, с которым уже установлен коннект через SOCKS прокси. Вы не можете использовать listen sockets через SOCKS прокси без первичного установления коннекта. retProxyIp возвращает ip ожидающего сокета на проксе, retProxyPort порт. Эти значения можно отправить на сервер, чтобы он знал как соединиться с прокси. После этого можно вызвать Accept безо всяких параметров. Почитать про SOCKS4/5 можно здесь http://www.socks.nec.com/socksprot.html Переопределённую функцию Accept можно также вызывать без параметров для сокетов использующих прямое соединение. Здесь Listen socket сам по себе является accepted socket. Чтоблы изменить базовый класс для CSocksifiedSocket, измените определение (definition) CSocksifiedBaseClass в SocksifiedSocket.h Пример: Коннект с сервером через прокси:
Как Вы видете, использовать класс достатосно просто. Создание ожидающего (listen) сокета:
|