Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Citius
-
- Обычный пользователь

-
-
- Сообщения: 74
- Зарегистрирован: 09.11.2005 (Ср) 9:36
- Откуда: Украина
Citius » 05.12.2007 (Ср) 14:35
Run-time error: 40006
"Wrong protocol or connection state for the requested transaction or request"
Англ. немного знаю. Суть ошибки понял, но не пойму откуда она берется и как её исправить. C Socket'ами столкнулся впервые.
- Код: Выделить всё
Private Sub Form_Load()
wnsServer.LocalPort = 1001
wnsServer.Listen
End Sub
Private Sub txtSendData_Change()
wnsServer.SendData txtSendData.Text '- здесь возникает ошибка
End Sub
Private Sub wnsServer_ConnectionRequest(ByVal requestID As Long)
If wnsServer.State <> sckClosed Then wnsServer.Close
wnsServer.Accept requestID
End Sub
Private Sub wnsServer_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
wnsServer.GetData strData
txtOutput.Text = strData
End Sub
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 05.12.2007 (Ср) 15:05
Проверяй wnsServer.State.
Ты пытаешься отправить данные по закрытому сокету.
А я все практикую лечение травами...
-
Citius
-
- Обычный пользователь

-
-
- Сообщения: 74
- Зарегистрирован: 09.11.2005 (Ср) 9:36
- Откуда: Украина
Citius » 05.12.2007 (Ср) 18:40
Блин все равно если я даже не закрываю соединение, та же ошибка возникает!
- Код: Выделить всё
Private Sub Form_Load()
wnsServer.LocalPort = 1001
wnsServer.Listen
End Sub
Private Sub txtSendData_Change()
wnsServer.SendData txtSendData.Text '- здесь возникает ошибка
End Sub
Private Sub wnsServer_ConnectionRequest(ByVal requestID As Long)
wnsServer.Accept requestID
End Sub
Private Sub wnsServer_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
wnsServer.GetData strData
txtOutput.Text = strData
End Sub
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 06.12.2007 (Чт) 8:14
По хорошему нужно создать массив Winsock'ов.
Один слушает и цепляет соединения на другие.
Возможно по этому и происходит конфликт.
Но ты все же попробуй проверять
- Код: Выделить всё
Private Sub txtSendData_Change()
If wnsServer.State <> sckConnected Then Exit Sub
wnsServer.SendData txtSendData.Text
End Sub
А я все практикую лечение травами...
-
alibek
-
- Большой Человек

-
-
- Сообщения: 14205
- Зарегистрирован: 19.04.2002 (Пт) 11:40
- Откуда: Russia
alibek » 06.12.2007 (Чт) 8:36
Попробуй в Form_Load в самом начале добавить wnsServer.LocalPort=0.
Lasciate ogni speranza, voi ch'entrate.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, PetalBot и гости: 16