Проблема с прокси-сервером на Vb6

  • Автор темы JackBauer
  • Дата начала
Статус
Закрыто для дальнейших ответов.
J

JackBauer

#1
Доброго времени суток, господа программисты. Сразу предупреждаю, что в программировании я новичек, поэтому прошу прощения если мой вопрос покажется вам слишком дилетантским.
Я пытаюсь написать прокси сервер для одной онлайн игры, чтобы определенным образом обрабатывать исходящие пкакеты и частично автоматизировать игровой процесс. Столкнулся со следующей проблемой: прокси почему-то не принимает пакеты с сервера. B)
Вот код:
Dim CPacket As String
Dim SPacket As String

Private Sub Form_Load()
Winsock1.LocalPort = 2020
Winsock1.Listen
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData CPacket
If Mid(CPacket, 1, 7) = "CONNECT" Then Server_Connect Else Data_Sending
End Sub

Private Sub Server_Connect()
Winsock2.RemoteHost = "Здесь я указал ИП сервера"
Winsock2.RemotePort = А здесь порт
Winsock2.Connect
End Sub

Private Sub Winsock2_Connect()
Winsock2.SendData CPacket
End Sub

Private Sub Data_Sending()
Winsock2.SendData CPacket
End Sub

Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Winsock2.GetData SPacket
Text1.Text = SPacket
Winsock1.SendData SPacket
End Sub
Проходя через мой прокси, клиент игры напрочь отказывается соединятся с сервером. Что я делаю не так? Заранее благодарен за ваш развернутый ответ. :facepalm:
 
J

JackBauer

#2
Вот еще вариант, тоже не рабочий :facepalm:
Dim SPacket As String
Dim CPacket As String

Private Sub Form_Load()
Winsock1.LocalPort = 2020
Winsock1.Listen
Winsock2.RemoteHost = "IP"
Winsock2.RemotePort = Port
Winsock2.Connect
End Sub


Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData CPacket
Text1.Text = Text1.Text + "Принял пакет от клиента: " + CPacket + Chr(13) + Chr(10)
Winsock2.SendData CPacket
End Sub

Private Sub Winsock2_Connect()
Text1.Text = Text1.Text + "Соединение с сервером установлено..." + Chr(13) + Chr(10)
End Sub

Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Winsock2.GetData SPacket
Text1.Text = Text1.Text + "Принял пакет от сервера: " + SPacket + Chr(13) + Chr(10)
Winsock1.SendData SPacket
End Sub
Содержимое text1.text:
Соединение с сервером установлено...
Принял пакет от клиента: CONNECT Здесь было ИП:А здесь порт HTTP/1.0
 
J

JackBauer

#3
Проблема решена: нужно было ответить клиету в виде: HTTP/1.0 200 OK
Особенность протокола. :facepalm:
 
Статус
Закрыто для дальнейших ответов.