Как отправить большой пакет Winsock?

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

Как отправить большой пакет Winsock?

Сообщение Nikolka » 01.05.2005 (Вс) 13:59

Winsock вообще может отправлять большие объёмы данных за раз? А то я как вижу, даю ему большой кусок:

tcpSender.SendData BIGTEXT

А он мне его делит и отправляет отдельными пакетами, размер не считал, но это не важно.

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 01.05.2005 (Вс) 14:08

Попробуй указать за минимальное число отправляемых байт то кол-во сколько весит твой BIGTEXT.
Я не помню как это сделать но знаю что можно!

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

Re: Как отправить большой пакет Winsock?

Сообщение tyomitch » 01.05.2005 (Вс) 20:06

Nikolka писал(а):Winsock вообще может отправлять большие объёмы данных за раз?

Нет, и не должен. Нормально написанная TCP-прога не должна вообще зависеть от способа упаковки передаваемых данных в пакеты.
Если твоя прога зависит от того, что придёт одним пакетом и что нет, то в Инете она неизбежно будет работать "через раз". Лучше переписать по-хорошему.
Изображение

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 01.05.2005 (Вс) 23:41

А что не устраивает.
Пошли сначала размер посылаемого.
А потом While размер <> нужному принимай...

Nikolka
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 174
Зарегистрирован: 01.01.2004 (Чт) 2:06

Сообщение Nikolka » 01.05.2005 (Вс) 23:41

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

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 01.05.2005 (Вс) 23:47

Хммм...Ясно...
Попробуй сам бить размер посылаемого на куски, передать их кол-во, а потом передавать их так:
[Кусок №1]
{сам кусок}
...Ждем ответ, что кусок принят...
[Кусок №2]
{сам кусок}
...Ждем ответ, что кусок принят...
[Кусок №3]
{сам кусок}
...Ждем ответ, что кусок принят...
И.т.д.

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 02.05.2005 (Пн) 2:04

Если хочешь отправить файл, то глянь по форуму.
Удачи!
С уважением, Алексадр.

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

Сообщение tyomitch » 02.05.2005 (Пн) 14:17

Nikolka писал(а):просто получ. ситуэйшон, когда быстрая передача данных. И глюк - не успел отправиться один пакет, как должен отправляться другой.

Не понял фишку. Данные отправляются последовательно и синхронно, значит, "перепутаться в дороге" они не могут. В чём же проблема?
Изображение


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

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

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

    TopList