Como duas ou mais instâncias do mesmo programa podem se comunicar na rede local? [fechadas]

0

Eu quero criar um programa que será usado por alguns computadores conectados na rede local. Basicamente, o objetivo do programa é manter o controle de todas as tabelas em uma barra (digamos), que são reservadas.

Quando algum usuário reservar uma mesa como reservado, o programa deve transmitir o número da mesa para todos os outros PCs e marcar a tabela como reservada. Como todos os computadores usam o mesmo programa, como é possível criar comunicação entre todos eles?

Devo usar soquetes para conseguir isso? Se isso importa, todos os computadores instalaram o sistema operacional Linux, e o aplicativo será desenvolvido em ruby, perl ou php.

Obrigado.

    
por user1981437 24.10.2013 / 01:28

2 respostas

0

Como você está usando o Linux, existe uma solução padrão para esse problema: um pipe nomeado. Um pipe nomeado é um arquivo no qual um processo grava e a partir do qual outro processo lê assim que os dados se tornam disponíveis. O sistema operacional cuida de acordar o processo de leitura e diz "há novidades para você". Também cuida de entregar ao processo de identificação a quantidade exata de dados que se tornou disponível, não mais, nem menos. Em outras palavras, pode haver 1 reserva ou 57 reservas, todas elas serão entregues corretamente sem que você tenha que contar para elas.

Você cria um pipe nomeado por meio do comando:

mkfifo my_pipe

Agora você usa o arquivo my_pipe como qualquer outro arquivo, pode escrever nele, ler a partir dele, redirecionar para ele, anexá-lo a ele:

echo "This is my name" > my_pipe

grep name my_pipe

cat my_pipe | while read; do ...; done 

e assim por diante.

    
por 24.10.2013 / 11:40
0

Resposta curta: O TCP / IP permite que você tenha uma relação servidor / cliente com facilidade. O servidor pode estar em, por exemplo, 192.168.0.1 e todos os clientes se conectam a esse servidor.

Detalhes: Se você tiver um banco de dados mysql ou equivalente, poderá fazer com que todos os computadores contatem o único banco de dados para armazenar os dados da reserva. Se você fizer isso baseado na web, você pode criar uma página da web para executar a partir de um servidor apache com php. Em seguida, você pode iniciar um navegador da web em todos os PCs clientes e fazer com que cada cliente atualize a página uma vez por minuto. Dada essa solução, use o servidor da web apache e a interface gráfica do usuário pode ter a aparência que você deseja. Todos os PCs do cliente simplesmente lançariam um navegador da Web e apontariam para http: /// tables (ou qualquer outra coisa)

Outra opção cria uma conta do Google e cria um calendário para cada tabela. O Google tem uma API gratuita e publicamente disponível (e vários outros idiomas) que você pode usar para adicionar / gerenciar eventos no Google Agenda. Se você precisar criar somente leitura, poderá criar uma segunda conta do Google e fazer um compartilhamento somente leitura na segunda conta. Você pode exibir a conta somente leitura ou leitura / gravação no navegador da Web em cada tabela. Você pode ativar todos os calendários ou apenas exibir o calendário para essa tabela. (Eu faço algo parecido com o Google Agenda para agendamento de sala)

    
por 24.10.2013 / 01:58