ObjectInputStream öffnet nicht

wootey

Mitglied
Hallo, ich schreibe momentan einen Client für einen Kalender, der auf einem Server LinkedLists speichern soll. Doch beim Erstellen des Clientobjekts wird der ObjectInputStream nicht geöffnet. Wirft aber keine Exceptions oder so.

Hier der Code der Clientklasse:
Java:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.LinkedList;
import java.util.Scanner;


public class Client {

	private String host;
	private int port;
	private String name;
	
	private Calendar cal = new Calendar();
	private ObjectOutputStream out;
	private Socket server;
	private ObjectInputStream in;

	
	public Client(String h, int p){
		host = h;
		port = p;
		
		try {
			System.out.println("im try catch");
			server = new Socket(host, port);
			System.out.println("new socket");
			out = new ObjectOutputStream(server.getOutputStream());
			System.out.println("output stream");
			in = new ObjectInputStream(server.getInputStream());
			System.out.println("input stream");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
	
	public Client(){
		
	}
	
public void send(Object m){
		
		try {
			
			out.writeObject(m);
			
			Object o = in.readObject();
			
			
			if(o == null){
				startGUI();
			}
			else {
				if(o instanceof LinkedList){
					System.out.println("Terminliste von Server empfangen!");
					cal.setList((LinkedList<Date>)o);
					
					startGUI();
				}
				if(o instanceof Integer){
					if(o.equals(1)){
						System.out.println("Liste erfolgreich vom Server empfangen");
					}
				}
				
			}
			
			
			
			out.close();
			
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void startGUI(){
		System.out.println("GUI wird gestartet...");
		GuiCal a = new GuiCal();
		a.setVisible(true);
		
	}
	
	public int getPort(){
		return port;
	}
	
	public String getHost(){
		return host;
	}
	
	public static void main(String[] args) {

		Client temp = new Client();
		System.out.println("Bitte geben Sie die Server IP ein: ");
		Scanner scanIP = new Scanner(System.in);
		temp.host = scanIP.nextLine();
		System.out.println("Bitte geben Sie den Port ein: ");
		Scanner scanPort = new Scanner(System.in);
		temp.port = scanPort.nextInt();
		String ip = temp.host;
		int port = temp.port;
		
		Client c = new Client(ip, port);
		System.out.println("Login Name: ");
		Scanner scanName = new Scanner(System.in);
		c.name = scanName.nextLine();
		

		c.send(c.name);
		
		
	}

}

Und hier die Serverklasse:

Java:
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Scanner;


public class Server {

	int port = 8888;
	ServerSocket socket;
	HashMap<String, Calendar> hashmap = new HashMap<String, Calendar>();
	
	public Server () {
		try {
			socket = new ServerSocket(port);
//			Calendar calendar = new Calendar();
			System.out.println("Server gestartet...");
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		while(true){
			listen();
		}
	}
	
	
	public static void main(String[] args) {
		
		new Server();
		
	}
	
	
	public void listen(){
		try {
			Socket client = socket.accept();
			ObjectInputStream in = new ObjectInputStream(client.getInputStream());
			
			
			Object o =in.readObject();
			ObjectOutputStream out = new ObjectOutputStream(client.getOutputStream());
			
			if(o instanceof String){

				out.writeObject(hashmap.get((String)o));

			}
			
			else {
				if (o instanceof LinkedList){
					System.out.println("Der Client sendet eine Liste...");
					LinkedList<Date> list = new LinkedList<Date>();
					list = (LinkedList<Date>)o;
					out.writeObject(1);
					
				}
				
			}
			
			
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public boolean nameVorhanden(String calname){
		
		if(hashmap.get(calname)==null){
			return false;
		}
		else{
			return true;
		}
		
	}
	

}
 
Zuletzt bearbeitet:
S

SlaterB

Gast
muss am Server liegen, ist der zufällig auch dein Code?

----

einen temp-Client anzulegen nur um dessen Attribute als Variablen zu benutzen,
diese dann aber extra noch in lokale Variablen zu kopieren (warum nicht gleich dort?)
um sie letztlich einem richtigen Client unterzubringen ist schräg

ständig neuer Scanner auch nicht nötig
 

wootey

Mitglied
Habe den Servercode in den Anfangspost editiert.

Fand ich auch sehr komisch, als ich damit angefangen hab^^. Wollte aber static vermeiden und wusste nicht wie ichs sonst machen soll.

Danke schon einmal.
 
S

SlaterB

Gast
dann ist es klar:
der ObjectInputStream liest gleich in seinem Konstruktor etwas von der Gegenseite,
wenn da nichts kommt weil kein OutputStream definiert, dann Blockade

der klassische Fehler ist, dass beide Seiten erst den ObjectInputStream definieren und beide Seiten
auf den ObjectOutput warten, der aber jeweils erst eine Zeile später kommt,

das ist bei dir nicht der Fall, denn ich sah dass du auf Client-Seite erst richtig out definiert hast,
damit könnte der Server entweder selber sowieso auch schon sein out definieren, oder falls erst Input könnte dieser gleich
den Anfang lesen und dann eben out,

du hast es aber so gebaut, dass beim InputStream nicht nur auf die Anfangs-Token, sondern gleich auf ein ganzes Objekt
gewartet wird, welches der Client noch nicht senden kann, da dessen Input auf Deklaration des Output im Server wartet,
welche erst später erfolgt

lange Rede, kurzer Sinn ;) :
Zeile 47 im Server muss etwas weiter höher, zur Sicherheit noch vor die Deklaration des InputStreams, also in Zeile 43
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
V Klassen ObjectInputStream ->ReadObject Probleme Java Basics - Anfänger-Themen 5
K String aus ObjectInputStream ausgeben Java Basics - Anfänger-Themen 1
M Input/Output ObjectInputStream Java Basics - Anfänger-Themen 2
S ObjectInputStream Java Basics - Anfänger-Themen 21
G Input/Output ObjectInputStream Java Basics - Anfänger-Themen 5
S Problem mit ObjectInputStream beim Einlesen von LinkedList Java Basics - Anfänger-Themen 3
V ObjectOutputStream/ObjectInputStream eines Objectes fuer mehrere Threads Java Basics - Anfänger-Themen 6
G ObjectInputStream: ClassNotFoundException Java Basics - Anfänger-Themen 2
M ObjectInputStream, Object und Vector<Object> Java Basics - Anfänger-Themen 4
E Verständnisfrage/Problem beim lesen mit ObjectInputStream Java Basics - Anfänger-Themen 3
W aus ObjectInputStream muß FileInputStream werden Java Basics - Anfänger-Themen 12
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
C Exportierte JAR öffnet zweiten Frame nicht mehr Java Basics - Anfänger-Themen 7
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
H Wieso öffnet sich der Texteditor? Java Basics - Anfänger-Themen 6
D Programm öffnet hinter Taskleiste Java Basics - Anfänger-Themen 1
E Eclipse öffnet nur mit Trick Java Basics - Anfänger-Themen 2
dat_vin JFrame öffnet sich mehrmals Java Basics - Anfänger-Themen 6
T GUI öffnet sich nicht Java Basics - Anfänger-Themen 23
T Ausführbare .jar öffnet nur ein cmd... Java Basics - Anfänger-Themen 2
A JDialog öffnet sich nicht Java Basics - Anfänger-Themen 7
J BlueJ öffnet package falsch Java Basics - Anfänger-Themen 2
J Klick auf Button -> JFrame öffnet sich erneut. & Datei lässt sich nicht löschen Java Basics - Anfänger-Themen 7
L Eclipse.exe öffnet sich nicht. Java Basics - Anfänger-Themen 7
D Erste Schritte Java Konsole öffnet sich nicht Java Basics - Anfänger-Themen 4
D Programm öffnet sich nicht Java Basics - Anfänger-Themen 5
K Erste Schritte Ein Button öffnet ein JFrame Java Basics - Anfänger-Themen 16
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
E javaw öffnet trotzdem ein DOS Fenster Java Basics - Anfänger-Themen 15
T Warum öffnet sich kein Fenster? Java Basics - Anfänger-Themen 3
D Applet öffnet nicht richtig Java Basics - Anfänger-Themen 4
E PopupMenu öffnet nicht so wie ich möchte Java Basics - Anfänger-Themen 2
G cmd.exe öffnet sich nicht Java Basics - Anfänger-Themen 5
S JFileChooser öffnet Unterverzeichnisse sehr langsam Java Basics - Anfänger-Themen 2
L Warum öffnet sich aus einer .jar-Datei kein Dosfenster? Java Basics - Anfänger-Themen 5
K ResultSet öffnet sich garnicht erst Java Basics - Anfänger-Themen 9
L JFrame öffnet 2tes JFrame, welches Daten vom 1sten braucht. Java Basics - Anfänger-Themen 21
D Programmausführung öffnet sich nicht Java Basics - Anfänger-Themen 4
F Packprogramm öffnet sich bei Doppelklick auf jar-Datei Java Basics - Anfänger-Themen 26
W warum öffnet der nur die erste datei???? Java Basics - Anfänger-Themen 5
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben