C++ Builder 2010,自带INDY 10,IdTCPServer开发的服务程序,网络链接不能及时销毁。

zhgwbzhd 2017-11-02 08:22:48
开发环境:C++ Builder 2010,自带INDY 10,IdTCPServer开发的服务程序。
客户环境:Windows 2008 R2,SQL Server 2012。

在OnConnect事件中有如下代码:
1、发现重复IP,就会断开前面的链接。
2、记录下当前列表和IdTCPServer->Contexts->LockList()->Count的数量,发现都很正常,数量很少,几乎都是个位数。


但是问题来了。
使用cports扫描,没断开的链接数高达几千个。
最后把服务器累死。

服务程序中断开链接的方法是

AContext->Connection->Disconnect();

哪位大牛给分析一下,可能的原因是什么??
这个程序在其他地方也用过,都没啥问题。
为何在这里却出这样的事?????
...全文
896 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhgwbzhd 2017-11-08
  • 打赏
  • 举报
回复
这个是肯定有的,我的日志代码: try { //记录IdTCPServer->Contexts->LockList()->Count } __finally { IdTCPServer->Contexts->UnlockList(); }
sczyq 2017-11-03
  • 打赏
  • 举报
回复
IdTCPServer->Contexts->LockList()->Count; 上页这句执行过后,必须IdTCPServer->Contexts->UnlockList(); 否则就是死结!

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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