Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.07;
Скачать: CL | DM;

Вниз

Откуда ReceiveLength берет длину ?   Найти похожие ветки 

 
karbo   (2002-08-05 01:41) [0]

Откуда ReceiveLength берет число с размером передаваемого пакета данных ?
Предполагаю, что это первые 4 байта этих данных.

Тогда вопрос в другом - при отправке с помощью TClientWinSocket.SendBuf эти 4 байта будут вставлены автоматически или их надо вставлять вручную ?

Иначе - какая из процедур ниже правильно отправит, к примеру, три байта 77 77 77

procedure ONE;
const A : array [1..3] of byte= (77,77,77);
begin ClientSocket1.Socket.SendBuf( A ,3 ) end;

или

procedure TWO;
const A : array [1..7] of byte= (3,0,0,0, 77,77,77);
begin ClientSocket1.Socket.SendBuf( A ,8 ) end;

или

procedure TRI;
const A : array [1..7] of byte= (7,0,0,0, 77,77,77);
begin ClientSocket1.Socket.SendBuf( A ,8 ) end;


 
Digitman ©   (2002-08-05 08:15) [1]

ReceiveLength() ничего не знает о логической структуре транспортируемых данных - ты должен самостоятельно заботиться о предварительном приеме/передаче префиксов, отражающих размер тех или иных данных, следующих за префиксом.

Единственная "правильная" процедура - первая.
Две других могут привести к AV из-за несоответствия размера массива размеру передаваемого пакета



Страницы: 1 вся ветка

Текущий архив: 2002.10.07;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.018 c
1-21040
Stocker!
2002-09-27 11:10
2002.10.07
Поворот Bitmap a


14-21200
VictorT
2002-09-04 15:01
2002.10.07
Поиск по сайту


14-21207
Карелин Артем
2002-09-11 12:07
2002.10.07
А кто что курит? Нюхает? Колет?


3-20904
ghost_by
2002-09-16 22:21
2002.10.07
TIBTransaction.Commit - ?


1-21127
nikitin
2002-09-24 13:02
2002.10.07
после инсталяции Delphi6 на W2kPro не инсталируются сервис паки