就短短的几行:在IdHTTPServer的OnCommandGet事件里procedure TForm1.IdHTTPServer1CommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin AResponseInfo.ContentType:='image/gif';
AThread.Connection.WriteStream(mystm);
AThread.Connection.DisconnectSocket;
AThread.Terminate;end;功能是返回一个图片。其中的mystm是一个全局变量(内存流),只建立一次,是摄像头自动取得的数据。虽然没有free掉,但是由于不是每次都新建,应该不会累占内存。我在不开通idhttpserver的时候,也验证了这一点(内存不涨)。但是一旦开通了IdHTTPServer,内存就不断的上涨,这是怎么回事?
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin AResponseInfo.ContentType:='image/gif';
AThread.Connection.WriteStream(mystm);
AThread.Connection.DisconnectSocket;
AThread.Terminate;end;功能是返回一个图片。其中的mystm是一个全局变量(内存流),只建立一次,是摄像头自动取得的数据。虽然没有free掉,但是由于不是每次都新建,应该不会累占内存。我在不开通idhttpserver的时候,也验证了这一点(内存不涨)。但是一旦开通了IdHTTPServer,内存就不断的上涨,这是怎么回事?
AThread.Connection.WriteStream(mystm);
试一下