Olá, aproveitando a discução de socket, estou tentando me comunicar via socket utilizando Threads com um sistema ETKA da LexCom. Vou colocar meu código aqui, eu estou criando uma aplicação servidora que fica lendo uma determinada porta, o software da ETKA já está respondendo em um determinado ip e uma porta. Estou recebendo sem problemas as mensagem enviadas pelo software, mas não estou conseguindo enviar uma mensagem para ele, onde é são determinados campos conforme documentação disponibilizada por eles. Então eu determinei o tipo da Thread: type TSock_Thread = class(TThread) private Socket :TCustomWinSocket; public constructor Create(aSocket:TCustomWinSocket); procedure Execute; override; end; Fiz o construtor: constructor TSock_Thread.Create(aSocket:TCustomWinSocket); begin inherited Create(true); // cria suspensa Socket := aSocket; // passa o Socket FreeOnTerminate := true; // libera automaticamente end; Criei um procedimento para executar a Thread: procedure TSock_Thread.Execute; var s:String; begin While not Terminated and Socket.Connected do begin if Socket.ReceiveLength > 0 then // evita o evento onClientRead begin s := Socket.ReceiveText; // recebe frmConexaoETKA.Memo1.Lines.Add(FormatDateTime('HH:MM:SS',time) + ' - Enviado pelo ETKA - ' + s); //frmConexaoETKA.Memo1.Lines.Add(FormatDateTime('HH:MM:SS',time) + ' - Enviado pelo Consultors - ' + copy(s,1,64) + '0000000020000000 1 '); Socket.SendText(s); // envia end; Sleep(1); // evita a CPU ficar em 100% end; end; E chamo ela no evento onAccept do socketServer: procedure TfrmConexaoETKA.SSAccept(Sender: TObject; Socket: TCustomWinSocket); var TST:TSock_Thread; begin TST := TSock_Thread.Create(Socket); // instancia o objeto TST.Resume; // coloca a Thread em execução end; alguém poderia me ajudar com essa situação.