TCP-сервер без события OnExecute

Я хочу сделать TCP-сервер и отправлять / получать сообщения клиентампо мере необходимости, а не событие OnExecute TCPserver.

Отправить / получить сообщение не проблема; Мне так нравится

procedure TFormMain.SendMessage(IP, Msg: string);
var
  I: Integer;
begin
  with TCPServer.Contexts.LockList do
  try
    for I := 0 to Count-1 do
      if TIdContext(Items[I]).Connection.Socket.Binding.PeerIP = IP then
      begin
        TIdContext(Items[I]).Connection.IOHandler.WriteBuffer(Msg[1], Length(Msg));
        //  and/or Read 
        Break;
      end;
  finally
    TCPServer.Contexts.UnlockList;
  end;
end;

Примечание 1: если я не использую OnExecute, программа вызывает исключение при подключении клиента.
Примечание 2: если я использую OnExecute без каких-либо действий, загрузка процессора увеличивается до% 100
Примечание 3: у меня нет возможности сменить клиентов TCP.

И что же мне делать?

Ответы на вопрос(5)

Ваш ответ на вопрос