datalen:=Socket.ReceiveLength;
getmem(refbuf,datalen);
mrevStream.Clear;
代码如下:
mrevStream.Position :=0;
position:=0;
while position<datalen do
begin
revlen:=Socket.ReceiveBuf(refbuf[position],datalen-position);
position:=position+revlen;
end;
mrevStream.Write(refbuf,datalen);
freemem(refbuf);
mMyJpeg:=TJpegImage.Create;
mrevStream.Position :=0;
mMyJpeg.LoadFromStream(mrevStream);
Image.Picture.Bitmap.Assign(mMyJpeg);
mMyJpeg.Free;
getmem(refbuf,datalen);
mrevStream.Clear;
代码如下:
mrevStream.Position :=0;
position:=0;
while position<datalen do
begin
revlen:=Socket.ReceiveBuf(refbuf[position],datalen-position);
position:=position+revlen;
end;
mrevStream.Write(refbuf,datalen);
freemem(refbuf);
mMyJpeg:=TJpegImage.Create;
mrevStream.Position :=0;
mMyJpeg.LoadFromStream(mrevStream);
Image.Picture.Bitmap.Assign(mMyJpeg);
mMyJpeg.Free;
根本就没有写进流里去
这代码...
有点吓人
怪不得会错
两个position?
这种命名方式首先要不得
你的stream已经clear了还怎么能write
你要选setsize才行