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.
Rogério Peron

Rogério Peron

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:
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

Antonio Baceiredo
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar