Re[2]: ReceiveBuf Delphi7
От: Аноним  
Дата: 01.06.11 04:59
Оценка:
А>в случае меньше — накапливаем в буфер, пока не придет как минимум сколько нужно,
А>как дождались или в случае больше или равно
А>накладываем на буфер указатель (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 записывается то что я отправил, но в конце процедуры ошибка доступа к памяти.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.