Executa um executável como um serviço em uma porta

1

Eu tenho um programa em C (digamos, um sistema de fila simples) que eu compilar e obter um arquivo executável. Eu quero rodar este executável como um serviço em uma porta TCP específica em um sistema CentOS que eu possa conectar via telnet e usá-lo como um serviço (emitindo comandos como getHead, queue, dequeue, etc). Preciso codificar isso no próprio programa C, como qual porta escutar?

Como posso conseguir isso?

    
por Arun Kaushik 05.03.2016 / 21:46

2 respostas

1

Sim - veja exemplos como o httpd, qualquer servidor ftp ou openssh do apache. A idéia de alto nível é criar um soquete e vinculá-lo a uma combinação de IP / porta e, em seguida, ouvir as conexões de entrada. Consulte o link para obter mais explicações e exemplos de código.

    
por 05.03.2016 / 22:34
1

O programa inetd pode oferecer exatamente o que você precisa. Você pode configurá-lo para iniciar seu próprio programa sempre que alguém se conectar em uma determinada porta. Dê uma olhada na página da Wikipédia . Seu próprio aplicativo não precisa estar ciente do material de rede se você quiser usar o inetd. Como alternativa, você também pode fazer a parte da rede com a API do soquete, como esta .

    
por 06.03.2016 / 01:39