Проблемы с UDP Winsock

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

Проблемы с UDP Winsock

Сообщение kos » 13.07.2005 (Ср) 13:36

Решил написать чат с помощью UDP. Все нормально. Работает. НО!

В 3-х случаях возникает ощибка с описанием "Run-time error '126'", либо вообще без описания:

1) первая отправка сообщения (последующие - все нормально)
2) инициализация
3) вообще при каждом действии с Винсоком (прога перестает норамльно функционировать).

Пишу подобную прогу впервые.
Буду весьма благодарен, если гуру помогут зеленому разобраться!

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 13.07.2005 (Ср) 18:35

Ну а код покажи! у нас тут телепатов пока не наблюдается...
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

kos
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.07.2005 (Ср) 13:24

Сообщение kos » 14.07.2005 (Чт) 12:25

Jenizix писал(а):Ну а код покажи! у нас тут телепатов пока не наблюдается...

Звиняюсь, думал, что ошибка общеизвестная..

Код: Выделить всё
Private Sub cmdRefresh_Click() ' процедура проверки наличия собеседника "на том конце провода"
  On Error GoTo 1
  ws.SendData "req"
  txtStatus.Text = "Проверка наличия соединения..."
1:
  If Err.Number <> 0 Then MsgBox "Произошла ошибка передачи данных. Повторите операцию", vbCritical: Exit Sub
End Sub

Private Sub Form_Load()
  On Error GoTo 1
  ...
  ws.Protocol = sckUDPProtocol
  ws.RemotePort = RemPort 'процедура проверки "на дурака" есть - с этой стороны ошибки быть не может
  ws.RemoteHost = RemIP
  ws.Bind LocPort   
1:
  If Err.Number <> 0 Then MsgBox "Произошла ошибка передачи данных. Повторите операцию", vbCritical: Exit Sub
End Sub

Private Sub lSendData(ByVal sData As String)
  On Error GoTo 1
  ws.SendData "msg" & sData
  txtOut.Text = ""
  txtStatus.Text = "Сообщение отправлено - ожидание отчета о получении..."
  txt.Text = txt.Text & "<" & LocNick & "< [" & Time & "] " & sData & vbCrLf & vbCrLf
1:
  If Err.Number <> 0 Then MsgBox "Произошла ошибка передачи данных. Повторите операцию", vbCritical: Exit Sub
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
  On Error GoTo 1
  Dim a
  ws.GetData a
  Select Case Left(Cstr(a), 3)
  Case "msg"
    a = CStr(a)
    txt.Text = txt.Text & ">" & RemNick & "> [" & Time & "] " & Right(a, Len(a) - 3) & vbCrLf & vbCrLf
    ws.SendData "okm"
    ...
  Case "req"
    ws.SendData "okr"
    ...
  Case "okm"
    MsgBox "Ваше сообщение принято!", vbInformation
    ...
  Case "okr"
    MsgBox "Соединение активно!", vbInformation
    ...
  End Select
1:
  If Err.Number <> 0 Then MsgBox "Произошла ошибка передачи данных. Повторите операцию", vbCritical: Exit Sub
End Sub


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 73

    TopList  
cron