Hallo,

das Test-Objekt t wird bei verlassen des try-Blocks zerstört und damit auch die enthaltenen Verbindungen. Es muss also vor dem try-Block definiert werden. Ausserdem könnte es sein, dass nach dem Erstellen der Threads die Main Methode verlassen wird und dabei auch das Objekt zerstört wird. Versuch mal eine Endlosschleife am Ende der Main Methode.

Code:
public static void main(String args[])
   {
      Test t = new Test();   // hier ist das Objekt die ganze Main-Methode lang vorhanden
      try
      {
         
         Thread i = new Thread(t.new Input());
         Thread o = new Thread(t.new Output());
      }
      catch(IOException e)
      {
         System.err.println(e.getMessage());
      }
      while(true)
      {
          ;  //Endlosschleife
      }

   }