![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
Доброго времени суток!
Подскажите, пожалуйста, какой-нибудь грамотный алгоритм склеивания данных в сокете и как проверить при считывании данных из сокета их целостность (кусок это или полный пакет) |
|
|||||
|
[+1 31.01.11]
Регистрация: Jun 2008
Сообщений: 91
|
берешь байтовый массив рубаешь его на пакеты по сколько тебе нужно , в каждый пакет заносишь номер пакета и количество байт которые будут в этом пакете - и начинаешь отгружать.
|
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
А есть хоть какой-нить наглядный примерчик? Так проще разобраться.
|
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
в первом пакете на сервере запихиваешь байт или инт (смотря, что нужно), который будет показывать длину всего сообщения. И исходя из этого считаешь, полное сообщение пришло или нет
|
|
|||||
|
Цитата:
По поводу примерчика - неужели так сложно сделать writeShort(длина массива данных) перед записью самих данных?
__________________
...вселенская грусть |
|
|||||
|
[+1 31.01.11]
Регистрация: Jun 2008
Сообщений: 91
|
[quote=gloomyBrain;969510]А номер-то зачем? =)
вдруг какого то пакета нет после передачи , можно повторно запросить и указать какой пакет нужен |
|
|||||
|
Регистрация: Dec 2007
Сообщений: 69
|
Спасибо, принцип понял. А пример нужен для большей ясности...
|
|
|||||
|
[+1 31.01.11]
Регистрация: Jun 2008
Сообщений: 91
|
Это значит вы нечего не поняли !
Добавлено через 4 минуты не изобретай велосипед , TCP/IP гарантирует передачу и целостность данных , он сам продублирует не хватающие пакеты |
|
|||||
|
Цитата:
Цитата:
Однако, я могу захотеть отправить больше, чем влезает в пакет TCP, тогда мне становится нужно дописывать длину пакета в его начале
__________________
...вселенская грусть |
|
|||||
|
[+1 31.01.11]
Регистрация: Jun 2008
Сообщений: 91
|
А сколько влазит в один пакет ?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|