# Sockets Serialisierung



## Asdf11 (15. Jan 2015)

Hallo,

ich bin mittlerweile leicht am verzweifeln, weil ich einfach nicht weiß wie ich mein Problem mit Sockets und Objekten hin und her schicken lösen soll und egal auf welche Seite ich schaue und versuche etwas zu kopieren, es gibt immer wieder ein neues Problem.

Idee:

Main                  - befüllt KinoHits
KinoHits 	        - abgeleitet beinhaltet String[]
Server 	        - erstellt ServerThreads
ServerThread     - schickt an Client eine befüllte! Liste
Client                - liest befüllte Liste aus und schickt hinterher wieder einen String den er aus 		der Liste hat zurück an den ServerThread

Ich bekomme so momentan eine no valid constructor Meldung, das sollte ja eigentlich heißen, dass ich nicht ganz so falsch liege, also alles andere sollte tun, nur das Objekt wird nicht richtig erkannt?

Server-Thread 
	
	
	
	





```
public void run() {
public class ServerThread extends Thread {
	private Socket clientSocket = null;
	KinoHits hits;
		try {
			ObjectInputStream serverInputStream = new ObjectInputStream(clientSocket.getInputStream());
			ObjectOutputStream serverOutputStream = new ObjectOutputStream(clientSocket.getOutputStream());

			serverOutputStream.writeObject(hits);





		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
```
public class Client extends Thread {
Client
	
	
	
	





```
public void run() {
		try {
			socket = new Socket(serverName, portNumber);
			ObjectOutputStream clientOutputStream = new ObjectOutputStream(socket.getOutputStream());
			ObjectInputStream clientInputStream = new ObjectInputStream(socket.getInputStream());

		
                        //die Zeile drunter wirft die no valid constructor meldung raus
			hits = (KinoHits) clientInputStream.readObject();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
```

Das Object
	
	
	
	





```
public class KinoHits extends AbstractKinoHits implements Serializable {
	
	String[] hitNames;
	
	public String[] getHitNames() {
		return hitNames;
	}

	public void setHitNames(String[] hitNames) {
		this.hitNames = hitNames;
	}

	public KinoHits(String[] hitNames) {
		super(hitNames);
		this.hitNames = hitNames;
	}
	


}
```

Wäre super wenn jemand eine kleine Idee dazu hätte.

Gruß


----------



## CptSocket (15. Jan 2015)

Hallo


So wie's aussieht funktioniert schon sehr viel, aber auf der Empfängerseite kann das Objekt nicht deserialisiert werden.
Hast du schonmal versucht, der Klasse KinoHits einen DefaultKonstruktor / Konstruktor ohne Parameter hinzuzufügen?


Freundliche Grüsse
CptSocket


----------

