要安全关闭IdTCPServer中的所有连接,可以使用以下代码示例:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
// 停止接受新的连接
IdTCPServer1.Active := False;
// 遍历所有连接并关闭
for i := 0 to IdTCPServer1.Contexts.Count - 1 do
begin
try
IdTCPServer1.Contexts[i].Connection.Disconnect;
except
// 处理异常,如记录日志等
end;
end;
// 清除所有连接
IdTCPServer1.Contexts.Clear;
end;
上述代码中,Button1Click事件处理程序中,首先将IdTCPServer1的Active属性设置为False,以停止接受新的连接。然后,通过遍历IdTCPServer1的Contexts列表,逐个关闭连接并清除所有连接。在关闭连接时,可以使用try-except块来处理可能的异常情况。
请注意,上述代码假设你已经在Delphi中正确配置了IdTCPServer1,并且Button1已经与Button1Click事件处理程序相关联。