Отправка пакетов ......

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Valerik
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 18.10.2002 (Пт) 14:02
Откуда: Russia

Отправка пакетов ......

Сообщение Valerik » 09.10.2003 (Чт) 8:08

Здарова Всем !
У мя вот такая проблемка, с отпракой данных, мяг сказать данные у меня привышают 256 символов, следовательно надо их разбить на Пакеты, вот гляньте, где здеся ошибка: :roll:

If Len(WHWS) > 255 Then
'MsgBox Len(WHWS) & "=====" & Round(Len(WHWS) / 255)
For i = 0 To Round(Len(WHWS) / 255)
ws.SendData Mid(WHWS, i * 255 + 1, 255)
Next
End If

Заранее благодарен :!:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.10.2003 (Чт) 8:30

Че, правда 255 максимальная длина пакета? :shock:
В любом случае.
Код: Выделить всё
For i = 0 To Len(WHWS) \ 255
  ws.SendData Mid$(WHWS, i * 255 + 1, 255)
Next
ws.SendData Mid$(WHWS, i * 255 + 1)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

mad_Max
Бывалый
Бывалый
 
Сообщения: 203
Зарегистрирован: 15.09.2002 (Вс) 21:17
Откуда: Russia, Cherepovets

Сообщение mad_Max » 09.10.2003 (Чт) 22:20

Во-первых, че-то я сильно сомневаюсь насчет максимальной длины пакета.
Во-вторых, а в чем собственно ошибка? Что не так работает? Пакеты не доходят, доходят не все или еще что-то?
В любом случае, насколько я помню, не получится просто так в цикле отправлять сообщения через Winsock. Я обычно дожидаюсь отправки пакета перед отправкой следующего (ожидаю событие SendComplete).

Valerik
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 18.10.2002 (Пт) 14:02
Откуда: Russia

Сообщение Valerik » 10.10.2003 (Пт) 5:57

У мя ошибка в том что эта вся бодяга делает перессылку данных раз через раз. Ваще уже запарился, то передаёт то нефига. Как я понимаю, если он полных к примеру 6 пакетов набирает то отправляет, а если ненабрал то лажа, но это тоже невсегда так работает.
А на счёт отправки данных, чо вы к ним така привязалиь, я просто их разбиваю на пакеты, мне кажется так проще.
Люди если у кого есть пример, где отправка данных и приём данных работает отлаженно, то киньте, был бы примного благодарен. А то уже честно слово подзае*ался с этой проблемкой. :twisted:

Георгий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 08.08.2003 (Пт) 15:08
Откуда: Россия

Сообщение Георгий » 10.10.2003 (Пт) 10:38

Прикол в том, что размер пакета максимальный как раз и не 256. А около 1.5кб (примерно 256*6 ) Так что вот так :)
Origin - это что?

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 10.10.2003 (Пт) 13:25

а зачем такие извращения, можно узнать?
что тут может быть проще в этом методе?
сначала разбиваем вручную на пакеты, потом эти пакеты отправляем. а как ты их на получателе собирать думаешь?... они ведь не обязательно туда прилетят именно в том проядке в каком ты их отправлял.
и потом... разбивка на пакеты нужной длинны уже реализована на уровне самого WinSock-API. зачем усложнять себе жизнь? не пойму...

так что все очень просто. отправка:
Код: Выделить всё
WinSock1.SendData msgData

получение:
Код: Выделить всё
Private Sub WinSock1_DataArrival(ByVal bytesTotal As Long)
  Dim DataReceived As String
  WinSock1.GetData DataReceived, vbString ' выгребаем все дынные из буфера
End Sub
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Георгий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 08.08.2003 (Пт) 15:08
Откуда: Россия

Сообщение Георгий » 10.10.2003 (Пт) 13:33

Граждане, поддержу предыдущего выступающего, и от себя добавлю:

стек протоколов TCP/IP гарантирует надежную доставку пакетов, их разбиение на более мелкие, если вдруг это понадобиться, машрутизацию, сборку на принимающей стороне, и еще много разных вещей. Не занимайтесь ерундой... Хотя мне впринципе все равно - хотите - занимайтесь :)
Origin - это что?


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

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

Сейчас этот форум просматривают: Majestic-12 [Bot], SemrushBot и гости: 2

    TopList