Пишу обычный локальный 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-скрипт. В этом есть свои плюсы.
 
 
Ответить
        |