问题一!!!

Delphi_Li 2004-03-30 09:55:39
我使用Delphi 6 提供的TTcpServer编写程序:
使用如下的代码初始化TTcpServer,
//设置SGIP接收服务器的本地监听IP和端口
Server.LocalHost := '192.168.0.99';
Server.LocalPort := IntToStr( Port );

TTcpServer对象是动态创建的,然后使用如下的代码打开TTcpServer
Result := False;
Try
Server.Open;
Result := True;
Except
End;
使用如下的代码关闭TTcpServer
Result := False;
Try
Server.Close;
Result := True;
Except
End;
并且保证100%释放了手工创建的TTcpServer对象,但是出现了以下的问题:
使用内存漏洞检测工具CodeWatch进行检测,发现产生了72+16共88个字节的内存漏洞,一个Socket资源漏洞,一个线程句柄漏洞。发生这些漏洞的位置都是在调用TTcpServer的Open方法,好像Close方法和Free不能正确地处理TTcpServer自己分配内存和资源(我的理解),请高手帮忙解释为什么能够导致这种现象!!!
...全文
67 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
coldsea_2000 2004-03-30
  • 打赏
  • 举报
回复
TTcpServer对象是动态创建的,那么后面的为什么要用close而不是free?还有,你在释放资源异常捕捉里面,有没有出现过异常?
还有,你发现一共产生了88个字节的漏洞,那么你能否知道在创建了这个TTcpServer对象的时候,耗费了多少字节的内存? 我不知道关于内存的资料。一般来讲,如果创建了一个对象,耗费一点资源,最后释放的时候,是不是应该全部都能释放?还是部分释放? 是不是它也象硬盘资料的删除一样,被标注了?

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧