WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

 
 
Themen-Optionen Ansicht
Alt 24.04.2003, 21:15   #7
blauesau
Hero
 
Registriert seit: 08.04.2003
Beiträge: 821


Standard

Langsam wird mir die Fragerei peinlich...

Erstmal Code (Kot?):

Code:
import java.net.*;
import java.io.*;
import javax.swing.*;

public class MSSClientThread
    extends Thread {
  protected int instance;
  protected Socket socket;

  public MSSClientThread(int inst, Socket sock) {
    instance = inst;
    socket = sock;
  }

  public void run() {
    InputStream input = null;
    ObjectInputStream oinput = null;

    System.out.println("(" + instance + ") Verbindung aufgebaut");

    try {
      input = socket.getInputStream();
      //oinput = new ObjectInputStream(input);
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }

    while (true) {
      try {
        oinput = new ObjectInputStream(input);
        
        JPanel o = (JPanel) oinput.readObject();

        System.out.println("(" + instance + ") " + o.getLocation().x);

        if (input.read() == -1) {
          System.out.println("(" + instance + ") Verbindung beendet");
          socket.close();
          break;
        }
      }
      catch (Exception ex) {
        ex.printStackTrace();
        break;
      }
    }
  }
}
Was hätte ich gerne? Der Client schickt an diesen Thread ein Objekt (in diesem Fall, beispielsweise vom Typ JPanel, wie auch immer...). Der Server (Thread) liest die x-Koordinate aus und gibt sie aus. Dann soll er auf weitere Incomings warten, bis es zu einer Abbruchbedingung kommt. Funktioniert auch - aber nur einmal! Versuche ich mit dem Client noch einmal zu senden, kommt es beim Server zu dieser Fehlermeldung:

Code:
java.io.StreamCorruptedException: invalid stream header
	at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:737)
	at java.io.ObjectInputStream.<init>(ObjectInputStream.java:253)
	at sic.MSSClientThread.run(MSSClientThread.java:39)
MSSClientThread.java:39 bezieht sich dabei auf die rot eingefärbte Zeile...
blauesau ist offline   Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:22 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag