# Wieso klappt das nicht? (Client in Java)



## Lzaman (9. Jun 2008)

Hallo Programmierer, wir haben ein Problem mit unserem Client.
Wir haben einer Server in C auf einem Rechner laufen und möchten von einem anderen Rechner mit dem Java Client Zeichen übertragen und auslesen. Allerding bleibt der Client bei read.readLine() hängen. Woran kann das liegen?

Hier der Client Code:


```
import java.io.*;
import java.net.*;

public class Client
{

   public Client()
   {
   }

    public String setController(String command) throws IOException
    {       
 
        Socket echoSocket = null;            
        PrintWriter write = null;
        BufferedReader read = null;   
        
        String hostname = "127.0.0.1";     
        String response;

        echoSocket = new Socket(hostname, 5432); 
        write = new PrintWriter (echoSocket.getOutputStream(), true);
        BufferedReader in = new BufferedReader (new InputStreamReader(System.in));       
        System.out.println("Warte auf Verbindung\n\r");    
        write.println(command);       
        response = read.readLine(); 
        read = new BufferedReader (new InputStreamReader( echoSocket.getInputStream()));
        write.close();
        read.close();
        in.close();
        echoSocket.close();  
        return response;
   
    }
}
```


PS: mit Hyperterminal klappt das alles.


----------



## Guest (9. Jun 2008)

Hier noch das main Programm:


```
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import java.io.*;
import java.net.*;
import javax.swing.event.*;
/**
 * Überschrift:   Transporter Nr.2
 * Beschreibung:  Transporter Nr.2-Client
 * Copyright:     Copyright (c) 2008
 * Organisation:  Roboter AG
 * @author        Roboter AG
 * @version 2.1
 */

public class Modellbahn extends JFrame implements ActionListener 
{
    // die Steuerlemente des Programms:
    // ohne Hilfselemente (JLabel, JPanel etc.)
    JLabel jlStatus, jlLGB, jlZustand, jlBarke;

    
    // Schaltflächen & Eingabefelder  
    ButtonGroup dieUIGruppe;    
    JToolBar bleiste, bleiste1, bleiste2;
    JButton jbStatus, jbLGB , jbStart;
    String stStatus, stLGB, stStart, command, response, stBarke;
    
    public boolean connect = false; 
    boolean bStart = true;
    boolean bStatus = true;
    
    public static void main(String[] args)throws IOException 
    {
        Modellbahn bahn = new Modellbahn();
        // bahn.show();
    }
    
    public Modellbahn() 
    {
        super("Transporter Nr.2: Version 2.1"); 
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);     
        this.setSize(400,200); // Framegroesse
        this.setLocation(100,100); // Position auf dem Bildschirm
        
        // Layoutmanager erzeugen und zuordnen
        GridBagLayout dasLayout = new GridBagLayout();
        GridBagConstraints dieLayoutWerte = new GridBagConstraints();
        dieLayoutWerte.fill = GridBagConstraints.BOTH;
        dieLayoutWerte.weightx = 1;
        dieLayoutWerte.weighty = 1;
        dieLayoutWerte.anchor = GridBagConstraints.CENTER;
        getContentPane().setLayout(dasLayout);

        // Steuerelemente erzeugen und zuordnen       
        jlZustand = new JLabel("Zustand undefiniert");
        bleiste1 = new JToolBar();
        bleiste1.setPreferredSize(new Dimension(200,200));
        bleiste1.add(jlZustand);
        bleiste1.setToolTipText("Anzeige");
        bleiste1.setBorder(BorderFactory.createTitledBorder("Transporter Nr.2"));
        dieLayoutWerte.weightx = 0.5;
        dieLayoutWerte.weighty = 1;
        dieLayoutWerte.gridx = 1;
        dieLayoutWerte.gridy = 0;
        dasLayout.setConstraints(bleiste1, dieLayoutWerte);
        getContentPane().add(bleiste1);
        dieUIGruppe = new ButtonGroup();
        
        jlBarke = new JLabel("Zustand undefiniert");
        bleiste2 = new JToolBar();
        bleiste2.setPreferredSize(new Dimension(400,400));
        bleiste2.add(jlBarke);
        bleiste2.setToolTipText("Anzeige-Barke");
        bleiste2.setBorder(BorderFactory.createTitledBorder("Aufenthaltsort"));
        dieLayoutWerte.weightx = 1;
        dieLayoutWerte.weighty = 1;
        dieLayoutWerte.gridx = 1;
        dieLayoutWerte.gridy = 2;
        dasLayout.setConstraints(bleiste2, dieLayoutWerte);
        getContentPane().add(bleiste2);
        dieUIGruppe = new ButtonGroup(); 
              
        jbLGB = new JButton("STOPP");
        jbLGB.setToolTipText("Transporter Nr.2: STOPP");
        jbLGB.addActionListener(this);          
        jbStatus = new JButton("Statusabfrage");
        jbStatus.setToolTipText("Transporter Nr.2: Status");
        jbStatus.addActionListener(this);   
        
        jbStart = new JButton("Start");
        jbStart.setToolTipText("Transporter Nr.2: Start");
        jbStart.addActionListener(this);   
    
        bleiste = new JToolBar();
        bleiste.setPreferredSize(new Dimension(200,30));
        bleiste.add(jbLGB);        
        bleiste.add(jbStatus);
        bleiste.add(jbStart);
        bleiste.setToolTipText("Auswahl: Schalter");
        bleiste.setBorder(BorderFactory.createTitledBorder("Schalter: STOPP - Status - Start"));
        dieLayoutWerte.weightx = 0.5;
        dieLayoutWerte.weighty = 1;
        dieLayoutWerte.gridx = 0;
        dieLayoutWerte.gridy = 0;
        dasLayout.setConstraints(bleiste, dieLayoutWerte);
        getContentPane().add(bleiste);
        dieUIGruppe = new ButtonGroup();        

        setVisible(true);
    }
    public void actionPerformed(ActionEvent e)
    {
        Object quelle = e.getSource(); 
        String command = new String();
        String response = new String();
        Client lgb = new Client();
        String Befehl = new String(e.getActionCommand());
                   
        try
        {       
            
            if(quelle == jbLGB )
            {    
                   command = "N";
                   response = lgb.setController(command);

                   if (response.equals("N"))
                   {      
                        stLGB = "stoppt"; 
                        jlZustand.setText("Transporter Nr.2 " + stLGB);
                    }
           }            
             if(quelle == jbStart )
            {    
                   command = "S";
                   response = lgb.setController(command);

                   if (response.equals("S"))
                   {    
                      /* if (bStart == true)
                       {
                           bStart = false; */
                           stLGB = "startet"; 
                           jlZustand.setText("Transporter Nr.2 " + stLGB);
                   //  }
                    }
           }           
            if(quelle == jbStatus )
            {               
                if (bStatus) /* bei erreichter Station bStart = true; in die If-Anweisung */
                { 
                       command = "S";
                       response = lgb.setController(command); 
                       System.out.println(command); 
                       stLGB = "Transporter befindet sich "; 
                       System.out.println(stLGB + "im Betriebszustand\n\r"); 
                        if (response.equals("S"))
                       {      
                            System.out.println(response);   
                            jlZustand.setText(stLGB + "in Richtung zu Station A!");
                            
                        }      
                        if (response.equals("A"))
                       {      
                            System.out.println(response);   
         
                            jlZustand.setText(stLGB + "bei Station A!");
                            
                        } 
                        if (response.equals("R"))
                       {      
                            System.out.println(response);   
         
                            jlZustand.setText(stLGB + "in Richtung zu Station B!");
                            
                        }
                        if (response.equals("B"))
                       {      
                            System.out.println(response);   
         
                            jlZustand.setText(stLGB + "bei Station B!");
                            
                        }
                        if (response.equals("U"))
                       {      
                            System.out.println(response);   
         
                            jlZustand.setText("Der Transporter hat auf der Strecke gestoppt");
                            
                        }
                        
                        // X RFID-CHIPS
                        if (response.equals("1"))
                       {      
                            System.out.println(response);   
  
                            jlZustand.setText("Der Transporter hat die Barke 1 passiert");
                            
                        }  
                        
                        if (response.equals("2"))
                       {      
                            System.out.println(response);   
  
                            jlZustand.setText("Der Transporter hat die Barke 2 passiert");
                            
                        }                           
                        
                        if (response.equals("3"))
                       {      
                            System.out.println(response);   
  
                            jlZustand.setText("Der Transporter hat die Barke 3 passiert");
                            
                        } 
                        
                        if (response.equals("4"))
                       {      
                            System.out.println(response);   
  
                            jlZustand.setText("Der Transporter hat die Barke 4 passiert");
                            
                        }
                        
                        if (response.equals("5"))
                       {      
                            System.out.println(response);   
  
                            jlZustand.setText("Der Transporter hat die Barke 5 passiert");
                            
                        }   
                        /*
                        switch(X)
                        {
                            
                            
                            case 1:   System.out.println(response);   
                                      jlZustand.setText("Der Transporter hat die Barke 1 passiert");
                                      break;
                            
                            
                            case 2:   System.out.println(response);   
                                      jlZustand.setText("Der Transporter hat die Barke 2 passiert");
                                      break;
                                      
                            
                            case 3:   System.out.println(response);   
                                      jlZustand.setText("Der Transporter hat die Barke 3 passiert");
                                      break;
                                    
                            
                            case 4:   System.out.println(response);   
                                      jlZustand.setText("Der Transporter hat die Barke 4 passiert");
                                      break;
                                      
                            
                            case 5:   System.out.println(response);   
                                      jlZustand.setText("Der Transporter hat die Barke 5 passiert");
                                      break;
                                      
                         
                         } */
                            
                      

                        
                        
                    }
                }
           }
             
            catch(Exception exp)
            {
               exp.printStackTrace();     
            } 
        }
}
```


----------



## Guest (9. Jun 2008)

und hier die Fehlermeldungen:


```
java.lang.NullPointerException
	at Client.setController(Client.java:33)
	at Modellbahn.actionPerformed(Modellbahn.java:139)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
	at java.awt.Component.processMouseEvent(Component.java:6038)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5803)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4410)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
	at java.awt.Container.dispatchEventImpl(Container.java:2102)
	at java.awt.Window.dispatchEventImpl(Window.java:2429)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
java.lang.NullPointerException
	at Client.setController(Client.java:33)
	at Modellbahn.actionPerformed(Modellbahn.java:128)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
	at java.awt.Component.processMouseEvent(Component.java:6038)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5803)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4410)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
	at java.awt.Container.dispatchEventImpl(Container.java:2102)
	at java.awt.Window.dispatchEventImpl(Window.java:2429)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
java.net.ConnectException: Connection refused: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:519)
	at java.net.Socket.connect(Socket.java:469)
	at java.net.Socket.<init>(Socket.java:366)
	at java.net.Socket.<init>(Socket.java:180)
	at Client.setController(Client.java:28)
	at Modellbahn.actionPerformed(Modellbahn.java:128)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
	at java.awt.Component.processMouseEvent(Component.java:6038)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5803)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4410)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
	at java.awt.Container.dispatchEventImpl(Container.java:2102)
	at java.awt.Window.dispatchEventImpl(Window.java:2429)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
java.net.ConnectException: Connection refused: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:519)
	at java.net.Socket.connect(Socket.java:469)
	at java.net.Socket.<init>(Socket.java:366)
	at java.net.Socket.<init>(Socket.java:180)
	at Client.setController(Client.java:28)
	at Modellbahn.actionPerformed(Modellbahn.java:156)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
	at java.awt.Component.processMouseEvent(Component.java:6038)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5803)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4410)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
	at java.awt.Container.dispatchEventImpl(Container.java:2102)
	at java.awt.Window.dispatchEventImpl(Window.java:2429)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
```


----------



## Siassei (9. Jun 2008)

Hallo,

hmm, ne NullPointerException. Wie schön   Ich wette mit dir, dass folgende Zeile die 33. in deinem Code ist 

```
response = read.readLine();
```

So, wie komme ich jetzt darauf. Du hast das ganze sehr schön und übersichtlich geschrieben, jedoch einmal die Reihenfolge etwas durcheinander gebracht. Beim Telefonieren musst du zu erst den Hörer abnehmen und danach erhälts du eine Antwort. Oder besser gesagt, verdrehe mal die 33. und 32 Zeile zu

```
read = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
response = read.readLine();
```

Ich hoffe, dass das der Fehler war und wünsche dir noch viel Erfolg mit deinem Projekt.

P.S.: Beim schreiben von JavaProg. würde ich dir eine IDE empfehlen. Hier bekommst du sehr viele Informationen während des Schreibens. Stichwörter: Netbeans, Eclipse (beide kostenlos)


----------



## Guest (9. Jun 2008)

Jo super das klappt, allerdings kann ich nur ein Zeichen senden dann erlaubt der Client keinen Mausklick mehr. Hängt sich sozusagen auf.


----------



## Siassei (9. Jun 2008)

Anonymous hat gesagt.:
			
		

> Jo super das klappt, allerdings kann ich nur ein Zeichen senden dann erlaubt der Client keinen Mausklick mehr. Hängt sich sozusagen auf.


Nun ja. Es enthält halt noch einige Fehler  Nur mal so neben bei ; Welche Roboter AG seit ihr?

Also, sehen wir uns mal den Client an. Wofür benötigst du eigentlich den System.in ? Und schließen würde ich diesen Strom sowieso nicht. Also entferne mal folgende Zeilen im Client

```
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
in.close();
```

So nun zur Modellbahn. Hier streicht mir Netbeans einige Imports gelb an -> unused -> löschen  :wink: 
Die Main-Methode würde ich sehr schnell kürzen :wink: und und .....

Falls es nicht am System.in gelegen hat. Musst du mir schon eine bessere Fehlerbeschreibung, Eingrenzung liefern


----------



## Guest (10. Jun 2008)

Fehlermeldung eingegrenzt:


```
java.lang.NullPointerException
	at Client.setController(Client.java:31)
	at Modellbahn.actionPerformed(Modellbahn.java:139)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
	at java.awt.Component.processMouseEvent(Component.java:6038)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5803)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4410)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
	at java.awt.Container.dispatchEventImpl(Container.java:2102)
	at java.awt.Window.dispatchEventImpl(Window.java:2429)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
```


----------



## Guest (10. Jun 2008)

so jetzt habe ich keine fehlermeldungen von java aber er wartet auf den server. wahrscheinlich schicken beide zur gleichen zeit die zeichen. erst wenn der server beendet wird, lässt sich der client wieder bedienen.

den code vom server kann ich auch posten bei bedarf.


----------



## Guest (10. Jun 2008)

so ein austausch klappt jetzt allerdings nur einmal dann bleibt client stehen. muss ich da ne while schleife einbauen?


----------



## tuxedo (10. Jun 2008)

>> muss ich da ne while schleife einbauen?

Die Frage war doch jetzt  nicht ernst gemeint, oder?

Du nimmst ja auch keinen Kreisel, würfst ihn für exakt eine Umdrehung an und wunderst dich dass er sich nicht weiter dreht, oder?

Ob while() oder for() bleibt dir überlassen.

- Alex


----------



## Guest (11. Jun 2008)

Also erstmal vielen Dank für eure Antworten, aber irgendwie bekommen wir das nicht hin. Wir werden den Client dann mal in C schreiben.

Danke


----------



## tuxedo (11. Jun 2008)

Na dann viel Spass. Aber wenn euch in Java schon nicht klar ist ob und wieso ihr eine Schleife braucht, wie soll das dann in C besser werden? Ich persönlich sehe auf C Seite mehr "hürden". Aber gut, vielleicht ist es in der Tat besser für euch auf beiden Seiten C zu verwenden.

- Alex


----------



## Siassei (11. Jun 2008)

alex0801 hat gesagt.:
			
		

> Na dann viel Spass. Aber wenn euch in Java schon nicht klar ist ob und wieso ihr eine Schleife braucht, wie soll das dann in C besser werden? Ich persönlich sehe auf C Seite mehr "hürden". Aber gut, vielleicht ist es in der Tat besser für euch auf beiden Seiten C zu verwenden.
> 
> - Alex


Jo, viel Spaß und bis bald


----------



## Chimaira (12. Jun 2008)

lol

Also von Java auf C umstellen ist ja geil . Jo die Frage mit der Schleife sollte eigentlich überflüssig sein ^^

GReeze Chimaira


----------



## tuxedo (12. Jun 2008)

Man sollte davon ausgehen, dass wenn sie es geschafft haben einen Server in C zu schreiben, dass sie dann auch einen passenden C-Client dazu basteln können. Kenne aber keinen, der einen Server allein bastelt, ohne einen Client zu testen gleich dazu zu schreiben. Von daher ist noch die Frage, ob sie wirklich Urheber des C-Servers sind, womit sich dann gleich das nächste Problem ergibt: Wenn sie den C-Server nicht selbst geschrieben haben, und mit einem CLient auf Java-Seite "Probleme" haben, dann wird's mit dem wechseln der Sprache sicher nicht "besser". 

Nun ja. Wie dem auch sei. Die Sache scheint aus Java-Sicht 'eh erledigt zu sein. 

- Alex


----------



## FArt (12. Jun 2008)

Ich schlage Visual Basic vor... kann heutzutage jedes Script-Kiddie...

*duck und weg*


----------

