Devo creare un processo che rimanga in ascolto sul socket finché non ci sono dati nel buffer, se trova dati si mette a scriverli in una textbox apposita.
Questo è il codice:

codice:
public class FinestraChat extends javax.swing.JFrame {

    private BufferedWriter scrivi;
    private BufferedReader leggi;

    /** Creates new form FinestraChat */
    public FinestraChat() {
        initComponents();
        ProcessoLettura lettura = new ProcessoLettura();
        lettura.start();
    }

    public void gestioneSocket (InetAddress ip) throws IOException
    {
        ConnessioneSocket conn = new ConnessioneSocket(ip);

        scrivi = conn.scrivi();
        leggi = conn.leggi();
    }

    private class ProcessoLettura extends Thread {
        @Override
        public void run() {
            try {
                while (true) {
                    if(leggi.ready())
                    {
                    String testo = new String();
                    testo.concat(leggi.readLine());
                    }
                }
            } catch (IOException ex) {

            }
        }
    }
Questo è l'errore che ottengo (una volta avviato il programma, in fase di compilazione non ricevo comunicazioni di nessun genere).

Exception in thread "Thread-3" java.lang.NullPointerException
at simpleinstantmessager.FinestraChat$ProcessoLettura .run(FinestraChat.java:47)
La riga 47 è ingrassettata nel codice precedente.
Sono abbastanza niubbo per quanto riguarda manipolazione di Socket e Thread in java ^^ quindi potrei anche aver fatto un errore molto banale, ma non sono proprio riuscito a tirare fuori una soluzione o.o