Ребят, помогите! Я пишу что-то вроде прокси, но при этом специально не шлю хвост клиента на сервер. Вроде, все должно быть просто. Написал, попробовал в рамках одного компа - все отлично работает, но в сети (при размещении моего прокси на другом компе) при событии Winsock1_ConnectionRequest выдается ошибка "wrong protocol". В чем может быть засада?
- Код: Выделить всё
Private Sub Command1_Click()
If Winsock1.State <> sckClosed Then Winsock1.Close
If Winsock2.State <> sckClosed Then Winsock2.Close
Label1.Caption = Label1.Caption + "-- Reset --" + vbLf
Winsock1.LocalPort = 1088 'Text1.Text
Winsock1.Listen
Label1.Caption = ""
Label1.Caption = Label1.Caption + "> listening at port " + Text1.Text + "..." + vbLf
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Winsock1.Protocol = sckTCPProtocol
Winsock2.Protocol = sckTCPProtocol
Command1_Click
End Sub
Private Sub Winsock1_Close()
Label1.Caption = Label1.Caption + "> Closed by Client" + vbLf
If Winsock1.State <> sckClosed Then Winsock1.Close
If Winsock2.State <> sckClosed Then Winsock2.Close
Winsock1.LocalPort = Text1.Text
Winsock1.Listen
Label1.Caption = Label1.Caption + "> listening at port " + Text1.Text + "..." + vbLf
End Sub
Private Sub Winsock2_Close()
If Winsock1.State <> sckClosed Then Winsock1.Close
If Winsock2.State <> sckClosed Then Winsock2.Close
Winsock1.LocalPort = Text1.Text
Winsock1.Listen
Label1.Caption = Label1.Caption + "> listening at port " + Text1.Text + "..." + vbLf
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Label1.Caption = Label1.Caption + "> requested from Client" + vbLf
If Winsock1.State <> sckClosed Then Winsock1.Close
If Winsock2.State <> sckClosed Then Winsock2.Close
Winsock2.LocalPort = 0
Winsock2.RemoteHost = "cache.pvt" '"10.0.0.1" 'Text2.Text
Winsock2.RemotePort = 3128 '1080 'Text3.Text
Winsock2.Connect
Text5.Text = Winsock2.LocalPort
Label1.Caption = Label1.Caption + "> connected to Server" + vbLf
Winsock1.Accept requestID
Text4.Text = Winsock1.RemotePort
Label1.Caption = Label1.Caption + "> request for Client accepted" + vbLf
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Label1.Caption = Label1.Caption + "> data recieved from Client" + vbLf
Dim str1 As String
Winsock1.GetData str1, , bytesTotal
Winsock2.SendData str1
Label1.Caption = Label1.Caption + "> data sent to Server" + vbLf
End Sub
Private Sub Winsock1_Error(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)
MsgBox "Client_winsock error: " & Description
End Sub
Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Label1.Caption = Label1.Caption + "> data recieved from Server" + vbLf
Dim str1 As String
Winsock2.GetData str1, , bytesTotal
Winsock1.SendData str1
Label1.Caption = Label1.Caption + "> data sent to Client" + vbLf
End Sub
Private Sub Winsock2_Error(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)
MsgBox "Server_winsock error: " & Description
End Sub