А>в случае меньше — накапливаем в буфер, пока не придет как минимум сколько нужно, А>как дождались или в случае больше или равно А>накладываем на буфер указатель (PPrefxix) структуры, читаем структуру, А>продвигаемся по буферу (или откусываем голову)
А как в буфер то напкопить?
var Buf: Pointer;
Prefix: TPrefix;
ReceiveLength: Integer;
begin
ReceiveLength:=0;
if Socket.ReceiveLength>=SizeOf(TPrefix)then
Socket.ReceiveBuf(Buf^,SizeOf(TPrefix))
else
begin
while ReceiveLength<=SizeOf(Tprefix)do
begin
Socket.ReceiveBuf(Buf^,Socket.ReceiveLength);
ReceiveLength:=+Socket.ReceiveLength;
end;
end;
Prefix:=PTPrefix(Buf)^;
Если длать так, то Buf будет перезаписваться и указывать на адрес новой порции данных?
Как мне добавитьв буфер?
В Prefix записывается то что я отправил, но в конце процедуры ошибка доступа к памяти.