Пишу обычный локальный HTTP прокси. Для тех, кто незнает как это работает, поясню:
- Поскольку прокси локальная, то она представляет собой обычную программу, которая слушает определенный порт.
- В браузере прописывается прокси в виде 127.0.0.1:8080 (8080 - порт моей прокси)
- Когда на этот порт приходят данные, прокся весь входящий пакет (запрос) пересылает методом POST PHP скрипту (Пока-что http://localhost/proxy.php)
- PHP скрипт, получив данные, извлекает POST данные, обрабатывает запрос (Получает запрашиваемую страницу). И выдает результат в стандартный поток вывода (просто команда ECHO)
- Локальная прокся, получив результат, должна его отослать браузеру.
В этом и встала проблема. В дебаге явно видно, что ответ PHP'шки пришел, но как его отослать обратно браузеру, я незнаю
Вот код:
Private Sub wsProxyToInternet_DataArrival(ByVal bytesTotal As Long)
Dim strData As String, strDataArrivial As String
strData = ""
Do
wsProxyToInternet.GetData strDataArrivial
strData = strData & StrConv(strDataArrivial, vbUnicode)
Loop Until (strDataArrivial = "")
If Mid$(strData, 2, 1) = vbNullChar And Len(strData) > 2 Then
strData = StrConv(strData, vbFromUnicode)
End If
wsProxyListen(lngConnectionIndex).SendData strData
wsProxyListen(lngConnectionIndex).Close
wsProxyToInternet.Close
End Sub
wsProxyListen - Массив винсоков, слушающих локальный порт 8080 (динамически расширяется при недостатке сокетов)
wsProxyToInternet - Винсок для общения с реальным интернетом
Вобщем, может подкинете реальный примерчик прокси (нормальной) на VB6 ?
ЗЫ
Ненадо придираться к тому что моя прокся использует PHP-скрипт. В этом есть свои плюсы.
Ответить
|