======如何真正关闭ClientSocket控件与服务器连接的端口!======(30分)

  • 主题发起人 主题发起人 coolsun
  • 开始时间 开始时间
C

coolsun

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一TClientSocket控件,与服务器保持一个长连接。
介面上有一个“启动”按钮,“停止”按钮。分别是开启这个与服务器的长连接和关闭该长连接。

我在“停止”按钮的事件里是这样关闭长连接的:ClientSocket.close;
当我使用 netstat -na 命令观看系统端口情况时,发现有一个本地断口开者,只是它的状态为 Time_Wait. 当我点好多次“启动”和“停止”按钮后,发现有一堆的本地断口,状态都是Time_Wait.

当过去一段时间后,再次查看这些本地断口的状态,发现状态变成了Fin_Wait_2

再过去一段时间后,再次查这些本地断口的状态,发现这些断口已经全部消失,就是已经 被系统关闭了。

请教一下用ClientSocket.close方法不能真正关闭本地断口吗?
 
这是操作系统实现SOCKET的步骤,看看tcp/ip协议就知道了。
 
可以關閉的。你可以用Ports查看端口,當你Close的時候,它會延會幾秒就會消失。
 
hiyaolee:
现在是能关掉,但是不是几秒钟。大概是5分钟左右。

yhee:
tcp/ip里面的规范就是不能立马关掉的吗?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
766
SUNSTONE的Delphi笔记
S
S
回复
0
查看
679
SUNSTONE的Delphi笔记
S
后退
顶部