проблема с winsock

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
hart
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 04.12.2003 (Чт) 22:44

проблема с winsock

Сообщение hart » 13.10.2004 (Ср) 10:10

Ребят, помогите! Я пишу что-то вроде прокси, но при этом специально не шлю хвост клиента на сервер. Вроде, все должно быть просто. Написал, попробовал в рамках одного компа - все отлично работает, но в сети (при размещении моего прокси на другом компе) при событии 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

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 13.10.2004 (Ср) 13:44

На первый взгляд всё правильно... В какой именно строке выдаётся ошибка?
Изображение

hart
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 04.12.2003 (Чт) 22:44

Сообщение hart » 13.10.2004 (Ср) 13:58

Ошибка "wrong protocol or connection state for the requested transaction or request" выпадает еще до выполнения первой строки из Sub Winsock1_ConnectionRequest.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 13.10.2004 (Ср) 14:35

Ошибка всегда происходит на какой-то строке, а не сама по себе...
Или ты про событие _Error?
Изображение

hart
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 04.12.2003 (Чт) 22:44

Сообщение hart » 13.10.2004 (Ср) 17:03

про error

hart
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 04.12.2003 (Чт) 22:44

Сообщение hart » 13.10.2004 (Ср) 17:04

его номер: 40006

hart
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 04.12.2003 (Чт) 22:44

Сообщение hart » 19.10.2004 (Вт) 10:32

up..


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 4

    TopList