1、IndyTCPserver的创建
IdTCPServer1.DefaultPort:= 8000;
IdTCPServer1.ListenQueue:= 1024; //同时处理请求队列数限制
IdTCPServer1.MaxConnections:= 1024; //同时连接数量限制,为0不限制连接数
IdTCPServer1.ContextClass:= TNewIdServerContext; //设置为自定义TIdServerContext类,作用稍后说明
TIdServerContext.Active:= True; //启动监听
2、Onconnect事件处理
procedure TMainForm.IdTCPServer1Connect(AContext: TIdContext);
begin
var Context:TNewIdServerContext; //Delphi 10.4.2 支持代码块定义变量
Context:= TNewIdServerContext(AContext);
if IdTCPServer1.Contexts.Count >= IdTCPServer1.ListenQueue then
begin
Context.Connection.Disconnect;
Memo1.Lines.Add(
Format('Socket连接已达到%d上限,%s:%d尝试连接被强制断开!',
[IdTCPServer1.ListenQueue, Context.Binding.PeerIP, Context.Binding.PeerPort])
);
end;
Context.mUserID:= 123456; //演示访问用户ID
end;
3、OnExecute事件