Aplicações diferentes acesso simultâneo ao Servidor Socket

2 respostas
4

Ajudinha: estou montando um sistema de votação electrónica via Sockets com fortes bases de Seguranca.
e estou com uma dificuldade ENORMEEEEEE!!! Veja um trecho do codigo no servidor:

ServerSocket servCliente = new ServerSocket(new Ficheiro(file).getEC()); // aqui carrega-se a partir de um ficheiro a porta para os Clientes ServerSocket servGestor = new ServerSocket(new Ficheiro(file).getEM()); // aqui carrega-se a partir de um ficheiro a porta para o Gestor. // podem considerar valores fixos para as portas. como: new ServerSocket(8877); e new ServerSocket(1999); Socket cliente; Socket gestor; t.start(); // ciclo de funcionamento while(true) { cliente = servCliente.accept(); new ServerThread(cliente).start(); //Os clientes sao manipulados na Classe ServerThread que extends Thread. gestor = servGestor.accept(); new resultados(gestor).start(); // o gestor e manipulado na Classe resultados que extends Thread. }
Dificuldade: como faço para que, quando terminar o tempo de acesso dos clientes o Gestor possa ter acesso automático ao Servidor e ser executada as suas tarefas (Receber os resultados da eleição - se quiserem ver como funciona a troca de informação entre o Servidor e o Gestor eu coloco parte dela)?
se alguém puder demonstrar (apenas uma faisca) agradeço

2 Respostas

E
while(true)  
 {  
 cliente = servCliente.accept();  
 new ServerThread(cliente).start(); //Os clientes sao manipulados na Classe ServerThread que extends Thread.  
 gestor = servGestor.accept();  
 new resultados(gestor).start(); // o gestor e manipulado na Classe resultados que extends Thread.  
 }

Aqui está escrito que o gestor só pode se conectar se porventura algum cliente se conectar antes, não? Que desajeitado. Deixe o loop que aceita conexões dos clientes em uma thread separada do loop que aceita conexões dos gestores.

4

isto ja tinha feito e nao tinha resultado. quando corria o Gestor inseria o endereco e a porta, ele ficava sempre em execucao e nada acontecia
Axo que uma boa solucao deve ser usando o timertask para intercalar os acessos. mas ta DIFIIIICIIL o programa corresponder aos meus codigos.

Criado 14 de setembro de 2011
Ultima resposta 14 de set. de 2011
Respostas 2
Participantes 2