Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi:TIdTCPClient disconnect don';不要关闭连接_Delphi_Tcp_Indy_Delphi 10.1 Berlin - Fatal编程技术网

Delphi:TIdTCPClient disconnect don';不要关闭连接

Delphi:TIdTCPClient disconnect don';不要关闭连接,delphi,tcp,indy,delphi-10.1-berlin,Delphi,Tcp,Indy,Delphi 10.1 Berlin,我正在调查活动TCP连接的增长 似乎TIdTCPClient。断开连接不要关闭连接 这是一个示例项目 program Project2; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, IdTCPClient; var FClient: TIdTCPClient; begin try FClient := TIdTCPClient.Create(); FClient.Connect('LOCALHOS

我正在调查活动TCP连接的增长

似乎
TIdTCPClient。断开连接
不要关闭连接

这是一个示例项目

program Project2;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  IdTCPClient;

var
  FClient: TIdTCPClient;
begin
  try
    FClient := TIdTCPClient.Create();
    FClient.Connect('LOCALHOST', 6379);

    FClient.Disconnect;
    FClient.Free;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
多次打开此控制台应用程序会导致连接增长

netstat -na | find "6379"


旁注:我在柏林10、Windows 7上(但在Windows 10上相同)

连接已关闭
TIME\u WAIT
表示本地端点(此端)已关闭连接


参考:

连接已关闭
TIME\u WAIT
表示本地端点(此端)已关闭连接

参考:

断开连接()
正在关闭连接。
TIME\u WAIT
状态是正常的TCP行为

无论哪个对等方首先主动关闭TCP连接(在本例中为您的客户端),其套接字端点都会进入
TIME\u WAIT
状态,这是TCP的一项安全功能,可以丢弃该连接中剩余的任何散乱数据包。一旦
TIME\u WAIT
超时,端点将在几分钟后完全释放

在另一个对等方上,被动接收关闭通知的对等方,其套接字端点进入
CLOSE\u WAIT
状态,并在另一个对等方
ACK
关闭后释放。那边没有等待时间

请参阅,其中对什么是
TIME\u WAIT
进行了非常长的讨论,讨论了它存在的原因以及如何有效地使用它。

Disconnect()
正在关闭连接。
TIME\u WAIT
状态是正常的TCP行为

无论哪个对等方首先主动关闭TCP连接(在本例中为您的客户端),其套接字端点都会进入
TIME\u WAIT
状态,这是TCP的一项安全功能,可以丢弃该连接中剩余的任何散乱数据包。一旦
TIME\u WAIT
超时,端点将在几分钟后完全释放

在另一个对等方上,被动接收关闭通知的对等方,其套接字端点进入
CLOSE\u WAIT
状态,并在另一个对等方
ACK
关闭后释放。那边没有等待时间

请看,这将进入一个非常长的讨论,讨论什么是时间等待,它为什么存在,以及如何有效地使用它。

“另一方尚未承认结束”——这不是时间等待的含义。看见事实上,在另一方确认关闭之前,你不能进入
TIME\u WAIT
。“另一方尚未确认关闭”-这不是TIME\u WAIT的意思。看见事实上,在对方确认关闭之前,你不能进入时间等待。