2.1 Java RMI
public interface Hello extends Remote {
public String sayHello() throws RemoteException;
}
public class HelloImpl extends UnicastRemoteObject implements Hello {
public HelloImpl() throws RemoteException {
super();
}
public String sayHello() throws RemoteException {
return "Hello, world!";
}
}
public class Server {
public static void main(String[] args) throws Exception {
Hello hello = new HelloImpl();
LocateRegistry.createRegistry(1099);
Naming.bind("Hello", hello);
System.out.println("Server started.");
}
}
public class Client {
public static void main(String[] args) throws Exception {
Hello hello = (Hello) Naming.lookup("rmi://localhost/Hello");
String message = hello.sayHello();
System.out.println(message);
}
}
2.2 Java Socket
public class Server {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("Server started.");
while (true) {
Socket socket = serverSocket.accept();
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
String request = (String) ois.readObject();
String response = "Hello, " + request + "!";
oos.writeObject(response);
oos.close();
ois.close();
socket.close();
}
}
}
public class Client {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("localhost", 8888);
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
String request = "world";
oos.writeObject(request);
String response = (String) ois.readObject();
System.out.println(response);
oos.close();
ois.close();
socket.close();
}
}
2.3 Java HTTP
public class Server {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(8888), 0);
server.createContext("/hello", new HttpHandler() {
public void handle(HttpExchange exchange) throws IOException {
String request = exchange.getRequestURI().getQuery();
String response = "Hello, " + request + "!";
exchange.sendResponseHeaders(200, response.getBytes().length);
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
});
server.start();
System.out.println("Server started.");
}
}
public class Client {
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost:8888/hello?name=world");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
InputStream is = conn.getInputStream();
byte[] buffer = new byte[1024];
int length = is.read(buffer);
String response = new String(buffer, 0, length);
System.out.println(response);
is.close();
conn.disconnect();
}
}