Conexão de clientes com socket

Oi, estou com um problemas em fazer com que vários clientes se conectem em um servidor, sendo que eu tenho que de algum modo conseguir capturar a conexão.


 public static Socket servidor() throws IOException{
    
        ServerSocket servidor = new ServerSocket(8080);
        while(true){
            try{
                JOptionPane.showMessageDialog(null, "Estou esperando uma conexão");

                conexaoCliente = servidor.accept();
                JOptionPane.showMessageDialog(null, "Estou conectato");
                System.out.println("O cliente" + conexaoCliente.getInetAddress().getHostAddress()+" esta conectado");
                retorno = conexaoCliente;
            }catch(IOException e){}
        }
        return conexaoCliente;
    }

estou tentando fazer o cliente se conectar e quando ele conecta eu capturo a conexão e retorno essa conexão para um método.

Ao executar a linha[quote=“LooKs, post:1, topic:345835”]
conexaoCliente = servidor.accept();
[/quote]

A aplicação vai ficar escutando na porta 8080 e a execução vai congelar e ficar em modo listner até que alguem reposnda.

Assim que alguem conectar o processamento vai continuar. A partir daí você vai precisar dar um

servidor.bind(“outra porta”);

Para que ele libere a porta 8080 para que alguem possa se conectar novamente.

eu quero manter todos na mesma conexão, apenas quero que mais de um cliente se conecte na porta e que eu consiga capturar a conexão de todos

Uma vez que um usuário conectou a porta 8080 vai ficar ocupada e ninguem mais irá conseguir conectar. Por isso o bind.

Ele só vai mudar a porta que está em uso para que você possa liberar a 8080 para outras pessoas se conectarem.

Nota: Após isto você precisa executar o método accept() novamente para que ele volte a escutar.

agora entendi, mas como eu vou conseguir pegar a conexão ?

Objeto conexaoCliente é a conexão em si.
Você pode passa-la para uma Thread ou método e fazer o que tiver que fazer com ela.