Executar Comandos por Socket

1. Executar Comandos por Socket

Juliano César Fabri de Vito
JulianoFabri

(usa Ubuntu)

Enviado em 22/09/2016 - 16:43h

Então gente, minha primeira vez aqui e comecei a mexer mesmo no Linux a pouquíssimo tempo. Seguinte, estou desenvolvendo um projeto utilizando Sockets e minha proposta é em um computador, onde irá rodar o Server, ele ficar esperando uma linha de comando do outro computador, que está rodando o Client, e assim que o Client mandar a linha de comando (ex ifconfig), o computador Server deve executar isso. A minha pergunta é, como faço para tornar a string recebida por socket em um comando para executar??

Agradeço desde já.


  


2. Re: Executar Comandos por Socket

Paulo
paulo1205

(usa Ubuntu)

Enviado em 22/09/2016 - 19:15h

Você pode passar a linha de comando ao shell, para que ele a interprete como se tivesse sido um comando recebido localmente. Outra possibilidade é você mesmo separar as diferentes partes da linha de comando (e.g. comando, opções, argumentos, redirecionamento, expansões, variáveis etc.) e executar o comando diretamente, depois de interpretar devidamente as partes.

O primeiro modo é ridiculamente simples. O segundo pode ser muito mais flexível e muito mais seguro.


3. Re: Executar Comandos por Socket

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 22/09/2016 - 22:08h

Se for possível utilizar um intermediador pra isso, pode utilizar alguma biblioteca de RPC, como:

Google Protobuf: https://developers.google.com/protocol-buffers/docs/cpptutorial
Cap'n Proto: https://capnproto.org/cxxrpc.html
ZeroMQ: http://zeromq.org/

Existem outras, como Apache Thrift, mas a documentação não é rica como a Protobuf.

Eu usei durante um bom tempo a Google Protobuf, é muito bem documentada e de fácil uso.

--
Uilian Ries
Linux Counter: 521986


4. Resolvido!

Juliano César Fabri de Vito
JulianoFabri

(usa Ubuntu)

Enviado em 26/09/2016 - 16:26h

Galera, Obrigado a todos pela ajuda, eu achei um jeito bem simples, é só passar a String recebida no server para o System,

System(string);

Obrigado a todos!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts