# Thread läuft nicht weiter



## MarcJ (11. Jan 2007)

Habe hier das Problem, dass mir der Client Thread nur einmal durchlaufen wird und dann abbricht.Kann meinen Fehler leider nicht finde.

Hier die ThreadVerwaltung:


```
public class Verwalt {
    public static Server server;
    public static Client client;
    public static Verwalt org; 
    /**
     * Creates a new instance of Verwalt
     */
    public Verwalt() {
    }
    public void starten(Server server){
        Thread t;
        t = new Thread(server);
        t.start();
    }
    public void start(Client client){
        Thread t;
        t = new Thread(client);
        t.start();
    }
    public static void main(String[] args){
        Verwalt org= new Verwalt();
        Gui grafik = new Gui(org);       
        server = new Server(grafik);
        
        // Server Objekt für die grafische Oberfläche verfügbar machen
        
        client = new Client(grafik);
        grafik.einf(server,client);
        grafik.setVisible(true);
    }
}
```

und mein Client Thread: 


```
public class Client implements Runnable {
    public Gui objekt;
    
    /** Creates a new instance of Client */
    public Client(){
        
    }
    public Client(Gui objekt) {
        this.objekt = objekt;      
    }
    public void run(){
        objekt.datum("*************** CLIENT: started\n",2);
        try{  
             DatagramPacket packet = new DatagramPacket( new byte[256], 256);;
             DatagramSocket socket = new DatagramSocket();
             socket.receive(packet);

        }catch(Exception e){  
            System.out.println("Fehler Client" + e);
        }
    }
   
    public void send(String text){
        try{
        byte[] raw = text.getBytes();
        InetAddress ia = InetAddress.getByName("localhost");
        DatagramPacket packet = new DatagramPacket( raw, raw.length, ia, 8888);
        dSocket = new DatagramSocket();
        dSocket.send( packet );
        }catch(Exception e){
            System.err.println("CLIENT: Fehler beim Senden");
        }
    }
}
```


----------



## SlaterB (11. Jan 2007)

wo kein Fehler ist, da auch nicht zu finden,
warum sollte der Thread denn nicht danach aufhören?

wenn du eine Endlosschleife haben willst, dann musst sie selber schreiben:
while (true) {
..
}


----------



## MarcJ (11. Jan 2007)

ups sorry war natürlich Fehler von mir ,hatte das ursprünglich auch schon probiert:


```
public void run(){
        objekt.datum("*************** CLIENT: started\n",2);
        try{ 
            System.out.println("Client ready");
            DatagramSocket socket = new DatagramSocket();
            while(true){
            DatagramPacket packet = new DatagramPacket(data, data.length);
            socket.receive(packet);
            }         
        }catch(Exception e){  
            System.out.println("Fehler Client" + e);
        }
    }
```


allerdings empfängt der Client immer noch keine Pakete.Wenn ich debugge ,dann seh ich auch das die try Anweisung nur einmal durchlaufen wird und zwar beim Start des Threads.Schicke ich vom Server aus ein Paket dann wird SOCKET.RECEIVE(packet) nicht mehr durchlaufen.


----------

