Fórum Socket executar tarefa #486082
19/07/2014
0
Olá, Eu tentando usar Sockets pra interligar minhas maquinas de lan gostaria de saber como posso fazer pra executar um comando do tipo por exemplo: do ClienteSocket do meu PC executar um comando no form do ServidorSocket das maquinas. Ex "enviar uma showmessage; ou esconder uma tabshet da PageControl"
Agradeço à ajuda.
Agradeço à ajuda.
Rogério Peron
Curtir tópico
+ 0
Responder
Post mais votado
20/07/2014
Rogério,
Para você realizar essa operação vc deve colocar na aplicação servidor o componente: ServerSocket1.
Nesse componente você deve configurar a porta de comunicação e mudar a propriedade Active para [TRUE].
Depois que você configurar a porta de deseja e ativar o componente para [TRUE], você deve ir ao evento: OnClientRead.
Esse evento é responsável por receber as mensagem enviados pela aplicação cliente.
Você pode trabalhar com [STRING] ou [INTEGER] para realizar as trocas de mensagens entre Server e Client.
Para você receber o comando enviado pela aplicação cliente:
Na aplicação servidora colocar o seguinte código no evento OnClientRead
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
Comando: Integer;
begin
Comando:= strtointdef(Socket.ReceiveText,0);
case Comando of
0: CodigoMostrarMsg
1: DesligarPC
2: ScreenTela
3: ..Demais comandos
end;
end;
Para você enviar comando da aplicação servidora para o cliente usar o seguinte comando:
Já aplicação Cliente colocar um componente [ClientSocket1].
Configurar as propriedade [HOST] e [PORT] conforme vc definiu no servidor.
No evento OnRead da aplicação Client colocar o seguinte código:
quote
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
Comando: Integer;
begin
Comando:= strtointdef(Socket.ReceiveText,0);
case Comando of
0: CodigoMostrarMsg
1: DesligarPC
2: ScreenTela
3: ..Demais comandos
end;
end;
Para você realizar essa operação vc deve colocar na aplicação servidor o componente: ServerSocket1.
Nesse componente você deve configurar a porta de comunicação e mudar a propriedade Active para [TRUE].
Depois que você configurar a porta de deseja e ativar o componente para [TRUE], você deve ir ao evento: OnClientRead.
Esse evento é responsável por receber as mensagem enviados pela aplicação cliente.
Você pode trabalhar com [STRING] ou [INTEGER] para realizar as trocas de mensagens entre Server e Client.
Para você receber o comando enviado pela aplicação cliente:
Na aplicação servidora colocar o seguinte código no evento OnClientRead
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
Comando: Integer;
begin
Comando:= strtointdef(Socket.ReceiveText,0);
case Comando of
0: CodigoMostrarMsg
1: DesligarPC
2: ScreenTela
3: ..Demais comandos
end;
end;
Para você enviar comando da aplicação servidora para o cliente usar o seguinte comando:
ServerSocket1.Socket.Connections[0].SendText(Edit1.text);
Já aplicação Cliente colocar um componente [ClientSocket1].
Configurar as propriedade [HOST] e [PORT] conforme vc definiu no servidor.
No evento OnRead da aplicação Client colocar o seguinte código:
quote
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
Comando: Integer;
begin
Comando:= strtointdef(Socket.ReceiveText,0);
case Comando of
0: CodigoMostrarMsg
1: DesligarPC
2: ScreenTela
3: ..Demais comandos
end;
end;
Da mesma forma que no servidor, para o cliente enviar uma mensagem para o [SERVIDOR] usar o código abaixo:
ClientSocket1.Socket.SendText(Edit1.text);
De forma geral é isso que você deve fazer para conseguir realizar essa tarefa na sua aplicação.
É algo bem simples de ser feito.
Procuro no google pelo termo "delphi socket" que você irá achar bastante conteúdo sobre o assunto.
Caso voce nao esteja achando os componentes [SOCKET] no seu Delphi acessar esse endereço para maior informação:
Instalar Socket no Delphi 2010 ate XE6
Qualquer duvida,
Postar.
Antonio Baceiredo.
Antonio Baceiredo
Responder
Gostei + 1