⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 多线程.txt

📁 如何在Delphi下实现画面捕捉、传输、以及文件的传输原理
💻 TXT
字号:
它区分客户端A或B是要用到多线程的。
type
   PClient =^TClient;
   TClient = Record
        DNS:String[20];
        IP: String[20];
        Thread:Pointer;
   end;
var
   Clients:TThreadList;
procedure TInforServer.IdTCPServer1Connect(AThread: TIdPeerThread);
var
   NewClient:PClient;
begin
    New(NewClient);

    NewClient^.IP:=AThread.Connection.Socket.Binding.PeerIP;
    NewClient^.Thread:=AThread;

    AThread.Data:=TObject(NewClient);
    try
        Clients.LockList.Add(NewClient);
    finally
        Clients.UnlockList;
    end;
end;

procedure TInforServer.IdTCPServer1Disconnect(AThread: TIdPeerThread);
var
    ActClient:PClient;
begin
    ActClient:=PClient(AThread.Data);
    try
        Clients.LockList.Remove(ActClient);
    finally
        Clients.UnlockList;
    end;
    dispose(ActClient);
    AThread.Data:=nil;
end;


//停止多线程发送
  while(index <= count)do
  begin
    if FDataThread[index]<>nil then
    begin
      FDataThread[index].Terminate;
      FDataThread[index].WaitFor;
      TransServer.ShowMsg(clBlue,'向客户端输出第%d线程已停止!ThreadId=%d,发送条数=%d,接收应答条数=%d',
          [index,FDataThread[index].ThreadID,SndNum[index],RecvNum[index]]);
      FDataThread[index].Free;
      FDataThread[index] := nil;
    end;
    inc(index);
  end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -