Socket - Sistema de Reserva de Passagens (Cliente/Servidor)

1 resposta
YaNkSaN

Boa noite,

Estou fazendo uma aplicação Cliente/Servidor de um Sistema de Reserva de Passagens de Ônibus…

O servidor é multi-thread e acessa um banco de dados enviando ao cliente as requisições o que mesmo realiza…

Existe três requisições que o cliente realiza ao Servidor…

1 - getCidades (O servidor devolve as cidades para o cliente escolher o destinatário),
2 - getHorarios (O cliente envia a cidade Origem e a cidade Destino e o servidor devolve os horarios ao cliente),
3 - getPoltronas (O cliente envia a hora da viagem e o servidor devolve as poltronas que estão reservadas ao).

onde é realizado via Socket.

Consegui fazer a comunicação com 1 cliente. e está funcionando normalmente

A cada requisição do cliente estou abrindo uma nova conexão no Servidor (accept) e após o fim da requisição eu fecho essa conexão .
Exemplo:

  • o servidor abre a conexão;
  • o servidor aguarda uma requisição do cliente;
  • o cliente solicita as Cidades;
  • o servidor envia as Cidades’;
  • o servidor fecha a conexão.

Isso é feito para cada requisição do cliente

minha dúvida é o seguinte…
Qual é a melhor maneira para trabalhar com MULTI-THREAD, a cada requisição estar abrindo uma nova conexão e fechando-a? ou estabelecer uma conexão no inicio da aplicação e realizar todas as trocas de mensagens e fechar a conexão no final?

Se a melhor escolha for a segunda como eu faria?

Pois ao enviar e receber solicitações do Cliente ou Servidor estou usando os métodos da classe Socket shutdownInput() e shutdownOutput()
e não consigo enviar ou receber informações de ambos os lados novamente pois acusa erro…

1 Resposta

M

Não sei se há outra opção, mas eu guardo em um mapa as conexões. Para enviar novamente uma menagem, vc tem que dar um flush!!

Criado 6 de junho de 2009
Ultima resposta 6 de jun. de 2009
Respostas 1
Participantes 2