Frage zu Swing,Threads, SwingWorker und Socket Communikation

blackson1c

Mitglied
Hallo

ich versuche mich gerade an einem Server Client Programm das über Sockets und ObjectInputStream und ObjectOutputStream kommuniziert.

Dabei hab ich das aktuelle Problem, das die Communikation im EDT mit abgearbeitet wird. Das führt dazu das einige Kommandos die GUI einfrieren lassen. Jetzt würde ich gern das von einander Trennen , und hier kommen die Probleme:

Ich habe versuch die Communikation in einen separaten Thread auszulagern :

Java:
private void ConnectButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        comm = new Comm();
        comm.start();
}

Java:
class Comm extends Thread
{
boolean status=true;
int count =0;
 Socket socket = null;

    private ObjectInputStream ois = null;
    private ObjectOutputStream oos = null;

    private CommandObject eingang = null;
    private CommandObject ausgang = null;




    @Override
public void run()
  {
        System.out.println("0");
      try {
        socket = new Socket("127.0.0.1", 44444);
        ois = new ObjectInputStream(socket.getInputStream());
        oos = new ObjectOutputStream(socket.getOutputStream());
        } catch(Exception e) {
          System.out.println(e.getMessage() );
         return;
        }
      System.out.println("1");

      ausgang = new CommandObject();
      ausgang.setCommand("Hallo Server");
        try {
            oos.writeObject(ausgang);
            oos.flush();
            oos.reset();
        } catch (IOException ex) {
            Logger.getLogger(Comm.class.getName()).log(Level.SEVERE, null, ex);
        }

     System.out.println("2");

     while (status==true) {

         System.out.println(".");
         try {
                    eingang = (CommandObject) ois.readObject();


                    //Reaktion auf die Client Befehele
                    if (eingang.getCommand().equals("EXIT") == true) {

                        break;
                    }

                    if(eingang.getCommand().equals("WAIT") == true){
                        System.out.println("Please Wait - Server is Starting");
                    }
                  } catch (Exception e) {

                    break;
                }

            }
            try {
            ois.close();
            oos.close();
            socket.close();
            } catch (IOException ex) {
            System.err.println("Fehler beim Beenden der Verbindung");
            }
}

public void disconnect(){
         status=false;
         try {

            socket.close();
        } catch (IOException ex) {
            Logger.getLogger(Comm.class.getName()).log(Level.SEVERE, null, ex);
        }
}
}

Der Code wird hier bei nur bis zur Zeile System.out.prinln("1") ausgeführt. Wobei dieses System.out nicht mehr ausgeführt wird.
Die GUI friert auch nicht ein, so das ich andere Threads mit anderen Buttons startet kann.

Hab das ganze auch mit SwingWorker versucht, mit dem selben ergebniss.
Was mach ich falsch ? bzw. Wie macht man sowas richtig, sodass ich aus der GUI immer noch Commandos an den Server schicken kann und dir server auch commandos an den Clienten schicken kann ?
 

eRaaaa

Top Contributor
Ist das nicht viel eher eine Socket-Frage ?
Java:
        ois = new ObjectInputStream(socket.getInputStream());

ObjectInputStream (Java Platform SE 6)
Creates an ObjectInputStream that reads from the specified InputStream. A serialization stream header is read from the stream and verified. This constructor will block until the corresponding ObjectOutputStream has written and flushed the header.

Ist das dein Problem evtl.?
 

Blakh

Bekanntes Mitglied
Java:
ausgang = new CommandObject();
      ausgang.setCommand("Hallo Server");
        try {
            oos.writeObject(ausgang);
            oos.flush();
            oos.reset();
        } catch (IOException ex) {
            Logger.getLogger(Comm.class.getName()).log(Level.SEVERE, null, ex);
        }

Es kann ja nur hier irgendwo stoppen.

Java:
ausgang = new CommandObject();

Was passiert denn hier?
 

KrokoDiehl

Top Contributor
Aah, da hatte ich doch auch mal etwas ähnliches. Der Hinweis von eRaaaa stimmt schon. Hole dir erstmal nur den OutputStream vom Socket und den InputStream erst nach dem Schreiben (sprich wenn du die Antwort lesen willst).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Frage zur objektorentierten Swing Programmierung AWT, Swing, JavaFX & SWT 10
M Swing Grundlegende Frage zu SWING mit WindowBuilder AWT, Swing, JavaFX & SWT 11
GUI-Programmer Zeichnen in Swing - Frage AWT, Swing, JavaFX & SWT 6
J Refreshing Swing Frage AWT, Swing, JavaFX & SWT 10
M Frage nach Swing Element AWT, Swing, JavaFX & SWT 3
G Frage zu Swing/JButton AWT, Swing, JavaFX & SWT 5
G Eine Frage zu Swing/JLabel AWT, Swing, JavaFX & SWT 2
G Frage zu Zeichnen in Swing Tutorial AWT, Swing, JavaFX & SWT 4
I Swing Frage AWT, Swing, JavaFX & SWT 5
ModellbahnerTT [gelöst]Frage und Problem zu Swing AWT, Swing, JavaFX & SWT 4
S Wieder eine Frage zu javax.swing.text AWT, Swing, JavaFX & SWT 2
thor_norsk Java - Allgemeine - Frage AWT, Swing, JavaFX & SWT 14
thor_norsk Allgemeine Frage AWT, Swing, JavaFX & SWT 10
M Frage zu Java Bundesligaverwaltung AWT, Swing, JavaFX & SWT 7
thor_norsk Allgemeine Frage AWT, Swing, JavaFX & SWT 9
E Frage zum Textfeld AWT, Swing, JavaFX & SWT 8
H Swing JMenu aufgeklappt oder nicht - Wie frage ich das ab? AWT, Swing, JavaFX & SWT 5
pkm Frage wegen java.lang.IllegalStateException bei DocumentListener AWT, Swing, JavaFX & SWT 4
D Frage zu ActionListenern und AvtionEvents AWT, Swing, JavaFX & SWT 2
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
F JavaFX Frage zum Logging AWT, Swing, JavaFX & SWT 6
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
ralfb1105 Swing Frage zu SwingWorker Verhalten bei cancel() AWT, Swing, JavaFX & SWT 2
J Frage zu setuserdata AWT, Swing, JavaFX & SWT 1
N Frage zu ListView AWT, Swing, JavaFX & SWT 11
L 2D-Grafik Frage zu Ellipse2D.Double, Abfrage, ob Punkt enthalten ist funktioniert nicht AWT, Swing, JavaFX & SWT 3
T Frage zu GUI - Button soll Objekt erfassen AWT, Swing, JavaFX & SWT 2
J Event Handling Frage zu der Funktion addActionListener AWT, Swing, JavaFX & SWT 2
T JavaFX Frage zum FX-Loader AWT, Swing, JavaFX & SWT 3
B drawRect Frage und Aufgabenstellung AWT, Swing, JavaFX & SWT 10
fLooojava GridLayout - Frage bezüglich Kachelgröße AWT, Swing, JavaFX & SWT 5
S Frage zu java.awt.EventQueue AWT, Swing, JavaFX & SWT 1
J Frage zu Java Projekt [2D Game] AWT, Swing, JavaFX & SWT 3
M Frage zum Loggen von Fehlern AWT, Swing, JavaFX & SWT 3
T Swing API Frage zu Verzeichnisbäumen und JTree AWT, Swing, JavaFX & SWT 1
M Thread-Frage in SWT AWT, Swing, JavaFX & SWT 1
Q Cursor Frage AWT, Swing, JavaFX & SWT 8
W JavaFX TableView frage AWT, Swing, JavaFX & SWT 5
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
I Grundsätzliche Frage zu ItemListener AWT, Swing, JavaFX & SWT 11
X Kurze Frage zu JPopup AWT, Swing, JavaFX & SWT 3
D Swing [Frage] ComboBox + Label AWT, Swing, JavaFX & SWT 3
D Frage zu JFrame und Graphics AWT, Swing, JavaFX & SWT 4
J Swing Frage zur Vorgehensweise (JTable?, JLabels?) AWT, Swing, JavaFX & SWT 8
S Frage zu Jtable / CellEditor AWT, Swing, JavaFX & SWT 1
kaoZ Frage zum einfügen von Componenten AWT, Swing, JavaFX & SWT 14
N Swing JTable anfänger frage AWT, Swing, JavaFX & SWT 2
S GridBagLayout-Frage AWT, Swing, JavaFX & SWT 1
V 2D-Grafik Frage zum Graphics Objekt AWT, Swing, JavaFX & SWT 2
F Swing JComboBox - Frage zur Größe AWT, Swing, JavaFX & SWT 11
G noch eine Frage zum EventDispachThread AWT, Swing, JavaFX & SWT 4
D MVC Frage AWT, Swing, JavaFX & SWT 6
Z Flackern trotz Offscreen Image / Doublebuffer, (+ Frage zu Pixelvergleich) AWT, Swing, JavaFX & SWT 25
GianaSisters 2D-Grafik BufferedImage.getSubimage - Frage AWT, Swing, JavaFX & SWT 7
M Frage zu KeyListener bzgl. JApplet AWT, Swing, JavaFX & SWT 3
M Frage zu Threads AWT, Swing, JavaFX & SWT 3
N Swing JComboBox Frage AWT, Swing, JavaFX & SWT 5
Luk10 g.drawString funktioniert nicht + Frage zur Text-Rendering Qualität AWT, Swing, JavaFX & SWT 7
Luk10 Frage zu Farb-Komposition AWT, Swing, JavaFX & SWT 9
K Gui Layout Frage AWT, Swing, JavaFX & SWT 5
V SWT Import Wizard - frage zur WizardPage AWT, Swing, JavaFX & SWT 5
N Swing Frage JXMapviewer AWT, Swing, JavaFX & SWT 4
GUI-Programmer Wieder ne Layout Frage AWT, Swing, JavaFX & SWT 11
GUI-Programmer LayoutManager Kurze Layout Frage - eine komponente mittig? AWT, Swing, JavaFX & SWT 5
lumo SWT Zeichnen bescheunigen bzw eine allg. Frage AWT, Swing, JavaFX & SWT 8
H Frage zu übergebenem Vector bzw. Boolean AWT, Swing, JavaFX & SWT 3
C 2D-Grafik BufferedImage laden, Frage zum Code AWT, Swing, JavaFX & SWT 2
VfL_Freak Swing Frage zu "new JPasswordField( 10 )" AWT, Swing, JavaFX & SWT 6
H Frage zu WindowBuilder Pro AWT, Swing, JavaFX & SWT 3
C Frage/Problem mit Jpanel AWT, Swing, JavaFX & SWT 4
S Frage zu TextArea AWT, Swing, JavaFX & SWT 2
Luk10 Frage zu Mouseevents AWT, Swing, JavaFX & SWT 7
F Frage zu Event KeyTyped bei jPanel AWT, Swing, JavaFX & SWT 4
A Frage zu StringBuilder AWT, Swing, JavaFX & SWT 2
S allg. Frage zur GUI-Architektur AWT, Swing, JavaFX & SWT 5
A Frage zu JDialog AWT, Swing, JavaFX & SWT 3
A Frage zur Methode matches() AWT, Swing, JavaFX & SWT 2
P LayoutManager Verständnis-Frage GridBagLayout AWT, Swing, JavaFX & SWT 7
H Allgemeine Frage zu Grafikfähigkeiten von Java AWT, Swing, JavaFX & SWT 24
D Repaint Frage, Design Frage AWT, Swing, JavaFX & SWT 2
Jats Frage zu JLabel & JTextField AWT, Swing, JavaFX & SWT 4
Y frage zu BufferedImage AWT, Swing, JavaFX & SWT 7
hdi Swing Frage zu invokeAndWait() Exceptions AWT, Swing, JavaFX & SWT 8
P Swing Frage zu paintComponent/getGraphics AWT, Swing, JavaFX & SWT 4
S Frage zu Graphics2D AWT, Swing, JavaFX & SWT 3
T AWT Frage zu AWT AWT, Swing, JavaFX & SWT 5
F unspezifizierte Frage zu JTable/ Model AWT, Swing, JavaFX & SWT 6
B SWT Frage zu MVC und Data-Binding AWT, Swing, JavaFX & SWT 8
T LookAndFeel Look and Feel Frage AWT, Swing, JavaFX & SWT 2
J Java2D Kreis/Kurven Frage AWT, Swing, JavaFX & SWT 2
P Kurze Frage zur Gestaltung eines vertikalen Menüs AWT, Swing, JavaFX & SWT 2
Dit_ Frage zum Thema SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 5
Eldorado Frage zur Anwendung des MVC-Konzept AWT, Swing, JavaFX & SWT 33
G Frage zu processMouseEvent AWT, Swing, JavaFX & SWT 6
M Zoomen in ein JPanel... und eine andere kleine Frage AWT, Swing, JavaFX & SWT 3
D Swing implementierungs-technische Frage zu JList/AbstractListModel AWT, Swing, JavaFX & SWT 7
C Event Frage AWT, Swing, JavaFX & SWT 7
A Frage zu GridLayout AWT, Swing, JavaFX & SWT 4
F Frage zu WindowListeners AWT, Swing, JavaFX & SWT 2
E einfache Frage:warum ist Hintergrund grau ? AWT, Swing, JavaFX & SWT 24

Ähnliche Java Themen

Neue Themen


Oben