# Probleme beim ersten Netzwerkprogramm



## Bitstubbi (5. Nov 2012)

Hallo zusammen um mich ein wenig mit der Netzwerkprogrammierung vertraut zu machen schreibe ich aktuell einen rudimentären Chat. Ich bin schon ewig an diesem kleinen Quellcode und bekommen immer andere Exceptions um die Ohren geworfen. Aber Ich glaube mich kurz vor dem Ziel zusehen  

Hier mal der Quellcode:


```
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Scanner;


public class Client implements Runnable{
	
	public Socket client;
	public ObjectOutputStream oos;
	public ObjectInputStream ois;
	public Scanner keyboard = new Scanner(System.in);
	public Object msg;
	
	
	public Client(int port){
		try {
			client = new Socket("localhost",port);
			oos = new ObjectOutputStream(client.getOutputStream());
			ois = new ObjectInputStream(client.getInputStream());
		} catch (IOException e) {
			e.printStackTrace();
		}
		Thread t = new Thread(this);
		t.start();
	}

	public void run() {
		while(true){
			System.out.println("## Message:");
			msg= new Object(keyboard.nextLine());
			try {
				oos.writeObject(msg);
				oos.flush();
			} catch (IOException e) {
				e.printStackTrace();
			}
			
		}
	}
	
}
```


```
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;


public class Server implements Runnable{

	public int port;
	public ServerSocket server;
	public Socket client;
	public ObjectOutputStream oos;
	public ObjectInputStream ois;
	public Object msg;
	
	public Server(int port){
		this.port = port;
		try {
			server = new ServerSocket(port);
		} catch (IOException e) {
			System.err.println(e.toString());
		}

		Thread th = new Thread(this);
		th.start();
	}
	
	public void run() {
		while(true){
			try {
				client = server.accept();
				oos = new ObjectOutputStream(client.getOutputStream());
				ois = new ObjectInputStream(client.getInputStream());
				
				while(true){
					msg = (Object)ois.readObject();
					if(msg.getMsg().equals("exit")){
						System.out.print("Chat beendet");
						break;
					}
					
				}
				
				
			} catch (IOException | ClassNotFoundException e) {
				System.err.println(e.toString());
			}
		}
	}
	
	public static void main(String[] args) {
	
		new Server(8888);
		new Client(8888);
	}
	
}
```


```
public class Object {

	private String msg;
	
	public Object(String msg){
		this.setMsg(msg);
		System.out.println("Object received:  "+msg);
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
	
}
```

Ich weiß de Message einfach Object zubennen ist nicht grade der beste Still  

folgende Fehler werden auf der Konsole ausgegeben:

## Message:
j
Object received:  j
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Object
## Message:
java.io.NotSerializableException: Object
	at java.ibjectOutputStream.writeObject0(Unknown Source)
	at java.ibjectOutputStream.writeObject(Unknown Source)
	at Client.run(Client.java:36)
	at java.lang.Thread.run(Unknown Source)


 Ich bin echt verzweifelt weil ich noch nie solange an so einem popel Programm gesessen habe  Danke schon mal im vorraus


----------



## xehpuk (5. Nov 2012)

Siehe: [JAPI]NotSerializableException[/JAPI]
Deine Klasse muss [JAPI]Serializable[/JAPI] implementieren.


----------



## Bitstubbi (5. Nov 2012)

Dann werd ich mir das jetzt mal aneignen  danke


----------



## Bitstubbi (5. Nov 2012)

Das ging ja einfach  Danke nochmal


----------

