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.
И что же мне делать?