import java.net.*; import java.io.*; public class ExternalizableServer extends Thread implements Externalizable { int port; private String message; private byte[] data; ServerSocket ss; public MessageServer2() throws IOException { this("Hello", 3452); } public MessageServer2(String message) throws IOException { this(message, 3452); } public MessageServer2(String message, int port) throws IOException { this.message = message; data = message.getBytes(); this.port = port; ss = new ServerSocket(port); start(); } public void run() { try { while (true) { Socket s = ss.accept(); OutputStream os = s.getOutputStream(); os.write(data); s.close(); } } catch (IOException e) { } } public synchronized void setMessage(String s) { this.message = message; data = message.getBytes(); } public String getMessage(String s) { return message; } public int getPort(int port) { return port; } public void writeExternal(ObjectOutput out) throws IOException { out.writeInt(port); out.writeUTF(message); } public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { port = in.readInt(); message = in.readUTF(); data = message.getBytes(); ss = new ServerSocket(port); start(); } }