Bom dia pessoal criei o seguinte código para criar uma Thread para cada conexão feita em meu servidor
unit serverthread;
interface
uses
windows, scktcomp, SysUtils, Classes, Forms;
Type
EServerThread = class(Exception);
// O ServerThread é um descendente do
// TServerClientThread
TServerThread2 = class(TServerClientThread)
private
//
protected
procedure ClientExecute; override;
// O ClientExecute substitui o
// TServerClientThread.ClientExecute
// E contém o código real que é
// Executado quando a thread é iniciada
end;
implementation
{
Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure ServerThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end;
or
Synchronize(
procedure
begin
Form1.Caption := 'Updated in thread via an anonymous method'
end
)
);
where an anonymous method is passed.
Similarly, the developer can call the Queue method with similar parameters as
above, instead passing another TThread class as the first parameter, putting
the calling thread in a queue with the other thread.
}
{ ServerThread }
procedure TServerThread2.ClientExecute;
Var
RecText:String;
Chegou:Boolean;
begin
inherited FreeOnTerminate := True;
while not Terminated and ClientSocket.Connected do
begin
try
// Evita usar 99% do processador
sleep(1);
// Verifica se chegou os dados
//Equivale ao on ready :D
if ClientSocket.ReceiveLength > 0 then
begin
//Verifica se o client ainda esta conectado se
//sim retorna a mensagem que ele enviou :D
if ClientSocket.Connected = true then
begin
RecText := ClientSocket.ReceiveText;
ClientSocket.SendText(RecText);
end
else
begin
ClientSocket.Close;
Terminate;
end;
end;
Except
ClientSocket.Close;
Terminate;
end;
end;
ClientSocket.Close;
Terminate;
end;
end.
Tá meio bagunçado mas em fim : Quando alguém conecta ao meu servidor ele cria um Thread para aquele visitante e o socket da thread herda as propriedades do socket principal. Minha duvida é o seguinte como faço para que o socket ou as thread se interaja entre eles ?
Por exemplo o cliente 1 manda a mensagem "Ola" ao cliente 2 e somente o cliente 2 recebera o olá como fazer isso se ele estar em uma Thread distinta ?
Pergunta
Sled
Bom dia pessoal criei o seguinte código para criar uma Thread para cada conexão feita em meu servidor
Tá meio bagunçado mas em fim : Quando alguém conecta ao meu servidor ele cria um Thread para aquele visitante e o socket da thread herda as propriedades do socket principal. Minha duvida é o seguinte como faço para que o socket ou as thread se interaja entre eles ?
Por exemplo o cliente 1 manda a mensagem "Ola" ao cliente 2 e somente o cliente 2 recebera o olá como fazer isso se ele estar em uma Thread distinta ?
Editado por SledLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.