Olá pessoal estou construindo um pequeno chat utilizando threads no modelo produtor/consumidor para capturar as mensagens vindas dos clientes, basicamente a thread produtora recebe a mensagem insere em uma fila e uma thread consumidora pega essa mensagem e manda para todos os outros clientes. Minha grande dificuldade é colocar mais de um cliente para rodar, olhei vários exemplos de sockets multithreads mas não consegui por o meu projeto pra rodar da mesma forma, pelo que eu ví posso utilizar uma unica porta e várias conexões por ela, me corrijam se eu estiver errado, outra ideia seria tornar meu servidor também uma thread o que não achei muito prático pois dai não poderei utilizar a mesma porta, isso complica o código dos clientes.
Se puderem a partir do código que eu estou postando aqui junto, me dar uma dica de como fazer, ou se alguém já passou por algum problema semelhante ou viu isso em outro tópico (procurei bastante no fórum antes de perguntar).
package novoservidor;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Servidor {
ServerSocket server;
Fila fila;
int porta;
public Servidor(Fila fila, int porta) throws IOException {
this.fila = fila;
this.porta = porta;
}
public void Executar() {
try {
server = new ServerSocket(porta);
Socket conexao = server.accept();
Produtora p = new Produtora(fila, conexao);
Consumidora c = new Consumidora(fila, conexao);
Thread T1 = new Thread(p);
Thread T2 = new Thread(c);
while (true) {
T1.start();
T2.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}