Hallo,
beim programmieren eines SocketServers bin ich auf ein Problem gestoßen:
Wie genau gehe ich am besten mit den In/Output Streams um?
Ich benutzte ObjectOutputStream und ObjectInputStream.
Meine NetztwerkKlasse seht so aus:
Die readObject;Object Methode blockiert den Thread so lange bis ein Object vom Client kommt.
Und ich dachte mir vielleicht ist es auch besser hier das Observer-Pattern anzuwenden und dann auf einkommende Objecte Events aus zulösen.
Wäre diese Idee gut ? Was meint Ihr ?
Habe jetzt schon eine weile gegoogelt aber nichts zur "korrekten" Handhabung dieses Problemes gefunden.
Viele Grüße,
Meeresgott
beim programmieren eines SocketServers bin ich auf ein Problem gestoßen:
Wie genau gehe ich am besten mit den In/Output Streams um?
Ich benutzte ObjectOutputStream und ObjectInputStream.
Meine NetztwerkKlasse seht so aus:
Java:
public class Netzwerk {
private final Socket socket;
private final ObjectOutputStream out;
private final ObjectInputStream in;
public Netzwerk(Socket sock) throws IOException
{
this.socket = sock;
this.out = new ObjectOutputStream(sock.getOutputStream());
this.in = new ObjectInputStream(sock.getInputStream());
}
public void writeObject(Object obj) throws IOException
{
out.writeObject(obj);
}
public Object readObject() throws IOException, ClassNotFoundException
{
return in.readObject();
}
public void closeConnection() throws IOException
{
if(socket!=null)
socket.close();
}
}
Die readObject;Object Methode blockiert den Thread so lange bis ein Object vom Client kommt.
Und ich dachte mir vielleicht ist es auch besser hier das Observer-Pattern anzuwenden und dann auf einkommende Objecte Events aus zulösen.
Wäre diese Idee gut ? Was meint Ihr ?
Habe jetzt schon eine weile gegoogelt aber nichts zur "korrekten" Handhabung dieses Problemes gefunden.
Viele Grüße,
Meeresgott