Controlar varios sockets?

estou precisando controlar varios sockets ao mesmo tempo , e gostaria de saber o seguinte :
seria certo eu criar um ArrayList da minha classe Socket dentro de uma thread e ficar chamando todos as funções referentes a cada socket , de dentro da ArrayList? ou isso ta errado?

Cara, acho que seria mais legal tu ter uma thread por socket… dai tu controla cada uma como uma conexão…

Até…

O que você chama de vários Sockets?

Você pode criar uma thread por socket, como o colega falou. Agora se esse número é muito grande, isso não será muito efetivo.

Nesse caso (e somente nesse caso), você pode reduzir o número de threads e construir um array list. Mas não de sockets, mas sim, de SocketChannels. Use os Selectors do SocketChannel para saber exatamente quando um read() pode ser feito. Isso reduz o número de threads, aumentando a eficiência geral de sistemas desse tipo. Para se informar sobre essas classes, pesquise sobre java.nio.

mto obrigado gente mas pelo q eu li sobre oq vc falou vini , essa classe eh usada no servidor, no meu caso estou fazendo o cliente, ela seria util mesmo assim? ou deveria usar multithread?

Use multi-thread. O número de sockets provavelmente será baixo.

O SocketChannel pode ser usado no cliente também, mas daí sem recorrer aos selectors. Mas eu recomendo que você use o que é mais fácil para você, nesse caso.

Fique no Socket simples e nas várias threads.

valeu pela ajuda gente.