Показать сообщение отдельно
Старый 16.07.2011, 00:07   #7
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Kilatif,уверен что первый пакет принят полностью? Дело не в размере буфера а в том что интернет имеет задержки, и пакеты могут доставляться за несколько приемов даже весьма небольшого размера.

1.Не вижу отдельно приема первых 2х байт из буфера чтобы узнать реальную длину пакета.

2.Почему из буфера пытаешься прочитать сразу все содержимое?
Len:=recv(RS_Sock,main_buff,MAX_PKT_SIZE,0);
В буфере может быть сразу несколько пакетов.


В любом случае для безошибочного приема пакета необходимо сначала считывать его длину (первых 2 байта), а затем читать с сокета до той поры пока эта (длина - 2 байта) не будет принята полностью (в твоем случае если пакет принят не полностью то необходимо ожидать следующего евента).
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)

Последний раз редактировалось Yegor, 16.07.2011 в 08:33.
Yegor вне форума   Ответить с цитированием
За это сообщение Yegor нажился 2 спасибками от: