Um cliente para varios servidores - Socket Java

Ola pessoal, gostaria de tirar uma duvida, e quem sabe, alguem possa “me dar um norte” nesse problema:
Tenho varios equipamentos que usam comunicação socket, porem trabalham em modo servidor, consegui fazer a comunicação com o aparelho usando a api do fabricante, enviar e receber os dados, porém, consegui conectando apenas em 1, e logo apos o recebimento e envio, a thread se encerra, n sendo possivel mais validar os dados, este já seria o primeiro problema, o segundo, e o qual é a grande duvida, é: consigo fazer minha aplicacao cliente se comunicar com varios servidores, e, manter essa comunicação enviando e recebendo dados sempre que os servidores solicitarem, ativa, ate o encerramento via botão ou outro comando qualquer?
Agradeço desde já.

Sim, é só abrir um socket para cada servidor e não fechar os sockets.

Obrigado pelo retorno LvBarbosa, este é meu codigo, feito em um JCheckBox, ate faz a validação, porem, uma unica vez, ao tentar passar outro cartao no dispositivo, ate mesmo o q tem o numero do teste, ele n retorna ao equipamento se bloqueia ou libera.

String ip = “172.16.18.60”, porta = “3000”;

    if (jchkConexao.isSelected()) {
        cliente = new TcpClient(ip,
                Integer.valueOf(porta));
        cliente.connect();
        if (cliente.isConnected()){ //check de conexao
          new Thread(new Runnable() {
            public void run() {
                String aux2="";
                try {
                    while (jchkConexao.isSelected()) {
                        if (cliente.availableData() > 0) {
                            char[] temp = cliente.receiveData(cliente.
                                    availableData()); //recebendo dados
                            String textoRecebido = "";
                            for (char chr : temp) {
                                textoRecebido += chr;
                            }
                            
                            String textoFormatEnvio = "";
                            System.out.println("Dados Recebidos: "+textoRecebido+"\n\n");
                            String semEspacoTab = ""; //comecar remover espacos e tabs
                            semEspacoTab = textoRecebido.replaceAll("\t", " ");
                            semEspacoTab = semEspacoTab.replaceAll("\n", "");
                            semEspacoTab = semEspacoTab.replaceAll(" ", "");

                            txtRecebeDados.setText(semEspacoTab.substring(18, 38));
                            if("00000000004266502030".equals(txtRecebeDados.getText())){ //check de numero do cartao
                                char[] data;
                                data = "01+REON+00+1]5]Acesso liberado]".toCharArray();                                                                        
                                textoFormatEnvio = textFormat(data);//formatando texto (cabeçalho, checksum e Byte final)                                    
                                cliente.sendData(textoFormatEnvio.toCharArray());   //enviando dados
                            }else{
                                char[] data;
                                data = "01+REON+00+30]5]Acesso Negado]".toCharArray();
                                textoFormatEnvio = textFormat(data);
                                cliente.sendData(textoFormatEnvio.toCharArray());
                            }                                
                                                            
                        }
                        Thread.sleep(500);
                        System.out.println("Conectado à: "+ip);
                    }
                } catch (Exception e) {
                    
                }
                jchkConexao.setText("Conectado");
                System.out.println(aux2);
                System.out.println(aux2);
            }
          }).start();
        }else{
            System.out.println("Conexão não Estabelecida");
            jchkConexao.setSelected(false);
        }
        
        
    } else {
        cliente.disconnect();
        jchkConexao.setText("Conectar");
        System.out.println("Desconectado de: "+ip);
    }

consegui fazer a comunicação com varios equipamentos ao mesmo tempo, com a dica do amigo ali em cima, tambem consegui tratar os dados enviados pelo equipamento, e devolver uma resposta conforme estes dados, porem, ainda tenho o problema de a thread para apos devolver os dado no socket, criei uma classe e inicio uma thread/socket para cada ip, mas quando há o pedido do equipamento, e é respondido este pedido, a thread se finaliza, nao respondendo mais, e como o codigo que postei ali em cima, n tem nenhuma linha finalizando ela. Sera que alguem poderia me dar um help?