Socket - Connection Reset - getInputStream

Pessoal,
Estou com dificultade de criar um metodo que reconecte o meu socket cliente.
já tentei de farias formas.A mais proxima que cheguei foi de colocar o metodo que cria um novo socket no bloco finaly, mas depois de reconectar eu preciso mandar logar novamente e é aí que tô travando:

vou postar meu codigo, se alguem puder me dar uma luz agradeço muito.
classe que faz a leitura

package br.com.gennex.socket;


//import br.com.log.LogWriter;
import br.com.gennex.front.FrontEnd;
import br.com.gennex.properties.CarregaProperties;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.Observable;
import javax.swing.JOptionPane;
import org.apache.log4j.*;

/**
 *
 * @author leonardo
 */
public class SocketLeitura extends Observable implements Runnable{

    private String telRecebido = null;
    private String dadosAdicionais = null;
    private String popUp = null;
    CarregaProperties cp = new CarregaProperties();
    SocketCon scon;
    String reconectou = "false";
    
    public SocketLeitura(){
        
    }

    //Acessobdmssql acbd = new Acessobdmssql();
    //LogWriter lw = new LogWriter();
    
    public String reconectou(){
        return reconectou;
    }

    /**
     * @return the telRecebido
     */
    public String getTelRecebido() {
        return telRecebido;
    }

    /**
     * @param telRecebido the telRecebido to set
     */
    public void setTelRecebido(String telRecebido) {
        this.telRecebido = telRecebido;
    }

    /**
     * @return the dadosAdicionais
     */
    public String getDadosAdicionais() {
        return dadosAdicionais;
    }

    /**
     * @param dadosAdicionais the dadosAdicionais to set
     */
    public void setDadosAdicionais(String dadosAdicionais) {
        this.dadosAdicionais = dadosAdicionais;
    }

    /**
     * @return the popUp
     */
    public String getPopUp() {
        return popUp;
    }

    /**
     * @param popUp the popUp to set
     */
    public void setPopUp(String popUp) {
        this.popUp = popUp;
    }


    public class EventoConexao{


    }

    public class EventoDesconexao{

    }

    //declara variavel socket
    Socket conecta;
    boolean conectado = true;

    private void comunicaEvento(Object event) {
		try {
			setChanged();
			notifyObservers(event);
		} catch (Exception e) {
			e.printStackTrace();
                        Logger.getRootLogger().debug(e);
		}

	}

    private void notificaConexao() {
		comunicaEvento(new EventoConexao());
                 Logger.getRootLogger().info("Notificação - conectou");
	}

    private void notificaDisconexao() {
		comunicaEvento(new EventoDesconexao());
                 Logger.getRootLogger().info("Notificação - desconectou");

	}


    public boolean estaConectado(){
        return conectado;
    }


    public SocketLeitura(Socket s){
        //metodo que recebe socket como parametro
        conecta = s;
    }




     @Override
    //sobrescreve metodo run
    public void run(){
        notificaConexao();
        
        try {
            //captura os streams de entrada no socket
            BufferedReader entrada = new BufferedReader(new InputStreamReader(this.conecta.getInputStream()));
            ProcessaMensagem pm = new ProcessaMensagem();
            do{
                String mensagem = entrada.readLine();


                if( mensagem.substring(0, 13).equalsIgnoreCase("MsgDoDiscador")){

                }else{
                Logger.getRootLogger().info("Recebido: "+mensagem);
                }

                if(mensagem.substring(0, 10).equalsIgnoreCase("fimchamada")){
                try{
                JOptionPane.showMessageDialog(null, "Fim da ligação!");
                 Logger.getRootLogger().info(mensagem);

                }catch(Exception e){
                    Logger.getRootLogger().debug(e);
                e.printStackTrace();
                }
             }
                if(mensagem.substring(0, 11).equals("ResultLogar") || mensagem.subSequence(0, 14).equals("ResultDeslogar")){
                    pm.processaLogon(mensagem);
                }
                pm.processaDadosChamada(mensagem);                
                if(mensagem==null){
                 break;
                 }else{
                //enquanto o buffer tiver entrada
                System.out.println("do Servidor: "+ mensagem);
                
          }
                //imprime as linhas de entrada
            }while(Thread.currentThread().isAlive());
        } catch (IOException ex) {
            Logger.getRootLogger().warn(ex.getMessage());
            Logger.getRootLogger().debug(ex);
            JOptionPane.showMessageDialog(null,"Conexao Interrompida - Logue novamente",ex.getMessage(),JOptionPane.WARNING_MESSAGE);
        }catch(Exception e){
            Logger.getRootLogger().debug(e);
        }
        finally{
            notificaDisconexao();
            try {
                Thread.sleep(5000);
                new SocketCon().conectaSocket(cp.getServidorGennex(), 22000);
                reconectou="true";
            } catch (InterruptedException ex) {
                java.util.logging.Logger.getLogger(SocketLeitura.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            
            
        }
        
    }
}

classe que conecta o socket

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.gennex.socket;


//import br.com.log.LogWriter;

import br.com.gennex.properties.CarregaProperties;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import org.apache.log4j.*;

/**
 *
 * @author leonardo
 */
public class SocketCon extends CarregaProperties {

    static DataOutputStream dout;
    public static PrintWriter pw;
    Socket s;
    SocketLeitura lt;
    Thread t ;


    

    public Socket conectaSocket(String servidor,int port){
        try {
           
            s = new Socket(servidor, port);
            lt = new SocketLeitura(s);
            t = new Thread(lt);
            t.start();
            if(s.isConnected()){
                System.out.println("Conectado");
                Logger.getRootLogger().info("Conectado em:"+servidor+" - Porta:"+port+"\n");
                try{
                dout = new DataOutputStream(s.getOutputStream());
                pw = new PrintWriter(dout,true);
                pw.flush();
                }catch(IOException e){
                    Logger.getRootLogger().warn("Não foi possível enviar comando ao GenNex", e);
                }
                
                
            }else{
                Logger.getRootLogger().warn(this + "Socket nao conectado!");
            }
    } catch (UnknownHostException ex) {
             Logger.getRootLogger().debug(ex);
             Logger.getRootLogger().info("server nao encontrado!");
        } catch (IOException ex) {
            try {
                throw new IOException();
            } catch (IOException ex1) {

                Logger.getRootLogger().debug("ponto 1 "+ex1);
            }
             
        }
        return s;

    }

    public boolean isConnected(){
        this.s.isConnected();
        return true;

    }

    public void desconecta() {
        try {
             s.close();
        } catch (IOException ex) {
            Logger.getLogger(SocketCon.class.getName()).log(Level.ALL, null, ex);
            Logger.getRootLogger().debug("ponto 2 "+ex);
            
        }finally{
            try {
                s.close();
            } catch (IOException ex) {
                Logger.getRootLogger().warn("Desconectado", ex);
            }
        }
    }
}

E a minha classe de Jframe que tem o metodo de logar e outros

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * FrontEnd.java
 *
 * Created on 23/12/2010, 12:46:08
 */

package br.com.gennex.front;

import br.com.gennex.properties.CarregaProperties;
import br.com.gennex.socket.ProcessaMensagem;
import br.com.gennex.socket.SocketCon;
import br.com.gennex.socket.SocketLeitura;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import javax.swing.JOptionPane;
import org.apache.log4j.*;


/**
 *
 * @author Leonardo
 */
public class FrontEnd extends javax.swing.JFrame {

    /** Creates new form FrontEnd */
    public FrontEnd() {
        initComponents();
        itensJComboGruposDac();
    }

    private static String version = "2.0.3";
    //version = 2.0.3 - limpa as variaveis de telRecebido = null;dadosAdicionais = null;popUp = null;contrato = null;
    //version = 2.0.2 - implementa avisos USUARIO NAO CADASTRADO,SENHA INCORRETA,LOGON NAO ENCONTRADO
    //version = 2.0.1 - implementa avisos do ResultLogar
    
    private static SocketCon socket = new SocketCon();
    CarregaProperties cp = new CarregaProperties();
    ProcessaMensagem pm;
    SocketLeitura lt;

    public void itensJComboGruposDac(){
        
        String grupos = cp.getGruposDac();
        String[] dacs = grupos.split(",");
        jGruposDac.removeAllItems();
        for(int i=0;i<dacs.length;i++){
            jGruposDac.addItem(dacs[i]);
        }
    }
    
    public void reconecta(){
        if(lt.estaConectado()){
            return;
        }else{
            socket.conectaSocket(cp.getServidorGennex(), cp.getPortTelecom());
            logar();
            
        }
     }
    

        private static void iniciaLogger() {
		try {
			Logger.getRootLogger().setLevel(Level.INFO);
			DailyRollingFileAppender fileAppender = new DailyRollingFileAppender(
					new TTCCLayout("dd/MM/yyyy HH:mm:ss"),
					"Log_FrontReceptivo.log", "'.'yyyy-MM-dd");
			Logger.getRootLogger().addAppender(fileAppender);
			Logger.getRootLogger().addAppender(
					new ConsoleAppender(new TTCCLayout("dd/MM/yyyy HH:mm:ss")));
		} catch (IOException e) {
			Logger.getRootLogger().error(e.getMessage(), e);
		}
	}
        

        public void desabilitaCampos(){
            tfusuario.setEnabled(false);
            tfsenha.setEnabled(false);
            tfpa.setEnabled(false);
        }

        public void habilitaCampos(){
            tfusuario.setEnabled(true);
            tfsenha.setEnabled(true);
            tfpa.setEnabled(true);
        }

//><---------------------------------------------------------------------------->


    @SuppressWarnings("static-access")
            public void deslogar() {
            String deslogar = ("Deslogar("+tfusuario.getText().trim()+";"
                    +jGruposDac.getSelectedItem()+")\r\n");
            socket.pw.write(deslogar);
            socket.pw.flush();
            System.out.println("Enviado:"+deslogar);
            Logger.getRootLogger().info("Enviado:"+deslogar);
    }

    @SuppressWarnings("static-access")
    public void fazerChamada(String p2,String p3){
        int random = 3+(int)(Math.random()*900);
        String p1 = ""+random;

        String fazerChamada = "fazerchamada("+p1+";"+p2+";"+p3+")\r\n";
        socket.pw.write(fazerChamada);
        socket.pw.flush();
        System.out.println(fazerChamada);
        Logger.getRootLogger().info("Enviado:"+fazerChamada);

    }
    
    @SuppressWarnings("static-access")
    public void pausarDespausar(){
        if(socket.isConnected()){
            try{
            if(btpausar.getText().equalsIgnoreCase("Pausar")){
                    String pausar = "pausar("+tfusuario.getText().trim()+")\r\n";
                    btpausar.setText("Despausar");
                    socket.pw.write(pausar);
                    socket.pw.flush();
                    System.out.println("Enviado:"+pausar);
                    Logger.getRootLogger().info("Enviado:"+pausar);
                }
                else
                {
                   String despausar = "despausar("+tfusuario.getText().trim()+")\r\n";
                    btpausar.setText("Pausar");
                    socket.pw.write(despausar);
                    socket.pw.flush();
                    System.out.println("Enviado:"+despausar);
                    Logger.getRootLogger().info("Enviado:"+despausar);
        }
            
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, "Socket não conectado!");
        }
            
        }

               
    }


    @SuppressWarnings("static-access")
            public void deslogarTudo(){
            String deslogarTudo = ("Deslogar("+tfusuario.getText().trim()+";)\r\n");
            socket.pw.write(deslogarTudo);
            socket.pw.flush();
            System.out.println("Enviado:"+deslogarTudo);
            Logger.getRootLogger().info("Enviado:"+deslogarTudo);
            }

    @SuppressWarnings("static-access")
            public void logar() {
            //deslogar();
            String ondeLogar = ("ondelogar("+tfusuario.getText().trim()+";"+tfpa.getText().trim()+")\r\n");
            socket.pw.write(ondeLogar);
            socket.pw.flush();
            //desabilitaCampos();
            System.out.println("enviado:"+ondeLogar);
            Logger.getRootLogger().info("enviado:"+ondeLogar);

            //<!---------------------------------------------------------------!>

            String logar = ("logar("+tfusuario.getText().trim()+";"+tfsenha.getText().trim()+";"+jGruposDac.getSelectedItem()+")\r\n");
            socket.pw.write(logar);
            socket.pw.flush();
            System.out.println("enviado:"+logar);
            Logger.getRootLogger().info("enviado:"+logar);
             }

    

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        tfusuario = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jGruposDac = new javax.swing.JComboBox();
        jLabel5 = new javax.swing.JLabel();
        tfpa = new javax.swing.JTextField();
        btlogar = new javax.swing.JButton();
        btpausar = new javax.swing.JButton();
        btdeslogar = new javax.swing.JButton();
        tfsenha = new javax.swing.JPasswordField();
        jPanel2 = new javax.swing.JPanel();
        tftelefone = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        btdiscar = new javax.swing.JButton();
        jLabel7 = new javax.swing.JLabel();
        tfddd = new javax.swing.JFormattedTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
        setTitle("GenNex Front - 2.0.4");
        setName("Tela Principal"); // NOI18N

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/gennex/front/logo.gif"))); // NOI18N

        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabel2.setText("Usuario");

        jLabel3.setText("Senha");

        jLabel4.setText("Grupo");

        jGruposDac.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        jLabel5.setText("PA");

        btlogar.setText("Logar");
        btlogar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btlogarActionPerformed(evt);
            }
        });

        btpausar.setText("Pausar");
        btpausar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btpausarActionPerformed(evt);
            }
        });

        btdeslogar.setText("Deslogar");
        btdeslogar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btdeslogarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(btdeslogar, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(btlogar, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jGruposDac, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(tfusuario, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 107, Short.MAX_VALUE)
                    .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel5)
                    .addComponent(jLabel3)
                    .addComponent(tfsenha)
                    .addComponent(tfpa)
                    .addComponent(btpausar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {tfsenha, tfusuario});

        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jLabel3))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(tfusuario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(tfsenha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jLabel5))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jGruposDac, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(tfpa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btlogar)
                    .addComponent(btpausar))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(btdeslogar)
                .addContainerGap(20, Short.MAX_VALUE))
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {tfsenha, tfusuario});

        jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabel6.setText("Telefone");

        btdiscar.setText("Discar");
        btdiscar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btdiscarActionPerformed(evt);
            }
        });

        jLabel7.setText("DDD");

        tfddd.setFocusLostBehavior(javax.swing.JFormattedTextField.COMMIT);
        tfddd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tfdddActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel7)
                    .addComponent(tfddd, javax.swing.GroupLayout.DEFAULT_SIZE, 21, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(tftelefone, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(btdiscar, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jLabel6))
                .addContainerGap(33, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(tftelefone, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(btdiscar)
                        .addComponent(tfddd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel7)
                            .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(26, 26, 26)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(jLabel1)
                        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void btlogarActionPerformed(java.awt.event.ActionEvent evt) {                                        
    logar();        // TODO add your handling code here:
    }                                       

    private void btdeslogarActionPerformed(java.awt.event.ActionEvent evt) {                                           
    deslogar();        // TODO add your handling code here:
    }                                          

    private void btdiscarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        fazerChamada(tfddd.getText().trim(), tftelefone.getText().trim());

    }                                        

    private void btpausarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        pausarDespausar();
    }                                        

    private void tfdddActionPerformed(java.awt.event.ActionEvent evt) {                                      

    }                                     

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        //SocketCon socket1 = new SocketCon();
        
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                CarregaProperties cp = new CarregaProperties();
                    socket.conectaSocket(cp.getServidorGennex(),22000);
                iniciaLogger();
                Logger.getRootLogger().info("Start Front - Versão "+version);
                final FrontEnd fe = new FrontEnd();
                fe.setVisible(true);
                fe.addWindowListener(new WindowAdapter() {
                    @Override
                    public void windowClosing(WindowEvent e){
                        fe.deslogarTudo();
                        Logger.getRootLogger().info("Aplicação encerrada");
                        System.exit(0);
                    }

                });
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton btdeslogar;
    private javax.swing.JButton btdiscar;
    private javax.swing.JButton btlogar;
    private javax.swing.JButton btpausar;
    private javax.swing.JComboBox jGruposDac;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JFormattedTextField tfddd;
    private javax.swing.JTextField tfpa;
    private javax.swing.JPasswordField tfsenha;
    private javax.swing.JTextField tftelefone;
    private javax.swing.JTextField tfusuario;
    // End of variables declaration                   

}

quando coloquei pra reconectar o socket no finaly da classe de leitura, funcionou , depois coloquei o metodo de logar que está na classe do FronEnd e ele mandou os parametros vazios.

À quem puder me socorrer eu agradeço…
Abs!