package org.prevayler.foundation.network; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.Socket; public class ObjectSocketImpl implements ObjectSocket { private final Socket _socket; private final ObjectOutputStream _outputStream; private final ObjectInputStream _inputStream; public ObjectSocketImpl( String serverIpAddress, int serverPort) throws IOException { this(new Socket(serverIpAddress,serverPort)); } public ObjectSocketImpl( Socket socket) throws IOException { _socket=socket; _outputStream=new ObjectOutputStream(_socket.getOutputStream()); _inputStream=new ObjectInputStream(_socket.getInputStream()); } public void writeObject( Object object) throws IOException { _outputStream.writeObject(object); _outputStream.reset(); _outputStream.flush(); } public Object readObject() throws IOException, ClassNotFoundException { return _inputStream.readObject(); } public void close() throws IOException { _outputStream.close(); _inputStream.close(); _socket.close(); } }