Страница: 1 |
|
Вопрос: помогите плиз! подсчет инетовского трафика.
|
Добавлено: 03.09.04 14:21
|
|
Автор вопроса: ERLAN
|
что есть в наличии:
1 - комп. салон
2 - прокси-сервер
3 - на каждом компе стоит моя программа-блокировщик.
что необходимо:
сколько ушло трафика с клиентского компа на прокси-сервер.
как думаю делать:
на клиентском компе поставить программу, к которой будет коннектиться браузер и которая сама коннектиться к прокси-серверу, программа посчитает байты и переправит пакеты на прокси-сервер. обратно по такой же схеме.
что получилось:
переправка пакетов, НО :
1 - есть тормоза (это не очень существенно)
2 - при получении от браузера пакета, я отправляю его на прокси-сервер (это происходит без проблем), потом я получив пакет от прокси-сервера пытаюсь переслать пакет браузеру, но соединение на этом винсоке закрыто (это бывает редко и только на тормозных страницах).
может есть какой-нибудь человек, который делал подобное.
или может можно по-другому сделать? это ОЧЕНЬ ВАЖНО. пожалуйста, помогите!!!!!
почта: er_admin@ok.kz
Ответить
|
Номер ответа: 2 Автор ответа: ERLAN
Вопросов: 1 Ответов: 1
|
Профиль | | #2
|
Добавлено: 03.09.04 17:54
|
вот мой код:
Public int_wskKol As Integer
Public int_ProxyClose As Integer
Public int_BrowserClose As Integer
'
Private Sub Form_Load()
wskProxy(0).Connect "192.168.72.100", 3128
wskBrowser(0).Bind 9000
wskBrowser(0).Listen
Load wskProxy(int_wskKol + 1)
DoEvents
wskProxy(int_wskKol + 1).Connect "192.168.72.100", 3128
DoEvents
Load wskBrowser(int_wskKol + 1)
DoEvents
int_wskKol = int_wskKol + 1
Load wskProxy(int_wskKol + 1)
DoEvents
wskProxy(int_wskKol + 1).Connect "192.168.72.100", 3128
DoEvents
Load wskBrowser(int_wskKol + 1)
DoEvents
int_wskKol = int_wskKol + 1
End Sub
Private Sub Text1_DblClick()
Text1.Text = ""
End Sub
Private Sub tmrTimer_Timer()
Dim iter As Integer
Cls
Me.Caption = wskProxy(0).State & wskBrowser(0).State & int_ProxyClose & int_BrowserClose
For iter = 1 To int_wskKol
Print wskProxy(iter).State & wskBrowser(iter).State
Next iter
End Sub
Private Sub wskBrowser_Close(Index As Integer)
wskBrowser(Index).Close
DoEvents
If Index <> 0 Then Call wskProxy_Close(Index)
If Index = 0 Then wskBrowser(Index).Listen
End Sub
Private Sub wskBrowser_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim iter As Integer
Dim bln_ParaFree As Boolean
Dim int_ParaFree As Integer
For iter = 1 To int_wskKol
If wskProxy(iter).State = sckConnected And wskBrowser(iter).State = sckClosed Then
bln_ParaFree = True
int_ParaFree = iter
Exit For
End If
Next iter
If int_ParaFree = int_wskKol Then
Load wskProxy(int_wskKol + 1)
Load wskBrowser(int_wskKol + 1)
wskProxy(int_wskKol + 1).Connect "192.168.72.100", 3128
int_wskKol = int_wskKol + 1
End If
If int_ParaFree <> 0 Then
wskBrowser(int_ParaFree).Accept requestID
End If
End Sub
Private Sub wskBrowser_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim dat_Data As String
Static int_wskProxyClose As Integer
wskBrowser(Index).GetData dat_Data
If wskProxy(Index).State = sckConnected Then
wskProxy(Index).SendData dat_Data
Else
int_wskProxyClose = int_wskProxyClose + 1
int_ProxyClose = int_wskProxyClose
End If
Text1.Text = Text1.Text + dat_Data
Text1.Text = Text1.Text + vbNewLine + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ wskBrowser" + vbNewLine
Text1.SelStart = Len(Text1.Text)
End Sub
Private Sub wskBrowser_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
wskBrowser(Index).Close
DoEvents
If Index <> 0 Then Call wskProxy_Close(Index)
If Index = 0 Then wskBrowser(Index).Listen
End Sub
Private Sub wskProxy_Close(Index As Integer)
wskProxy(Index).Close
DoEvents
wskProxy(Index).Connect "192.168.72.100", 3128
End Sub
Private Sub wskProxy_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim dat_Data As String
Static int_wskBrowserClose As Integer
wskProxy(Index).GetData dat_Data
If wskBrowser(Index).State = sckConnected Then
wskBrowser(Index).SendData dat_Data
Else
int_wskBrowserClose = int_wskBrowserClose + 1
int_BrowserClose = int_wskBrowserClose
End If
Text1.Text = Text1.Text + dat_Data
Text1.Text = Text1.Text + vbNewLine + "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ wskProxy" + vbNewLine
Text1.SelStart = Len(Text1.Text)
End Sub
Private Sub wskProxy_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
wskProxy(Index).Close
DoEvents
wskProxy(Index).Connect "192.168.72.100", 3128
End Sub
---------------------------------------------------------
не очень сложный.
профессиональные программисты, помогите, проанализируйте код. мой шеф меня уже готов порвать .
могу скинуть проект на почту.
Ответить
|
Страница: 1 |
Поиск по форуму