From 3abb682300717ef1d173545825361b12e70e086c Mon Sep 17 00:00:00 2001 From: javahongxi Date: Sun, 11 Aug 2019 15:19:59 +0800 Subject: [PATCH] java --- .../java/org/hongxi/java/io/FileTest.java | 23 ++++ .../java/{util => }/lang/CodeBlockTest.java | 2 +- .../hongxi/java/{util => }/lang/ExTest.java | 2 +- .../java/{util => }/lang/oop/Animal.java | 2 +- .../hongxi/java/{util => }/lang/oop/Cat.java | 2 +- .../java/{util => }/lang/oop/ChinaCat.java | 2 +- .../lang/singleton/EagerSingleton.java | 2 +- .../lang/singleton/EnumSingleton.java | 2 +- .../lang/singleton/InnerClassSingleton.java | 2 +- .../lang/singleton/LazySingleton.java | 2 +- .../java/org/hongxi/java/net/TCPClient.java | 46 ++++++++ .../java/org/hongxi/java/net/TCPServer.java | 81 +++++++++++++ .../java/org/hongxi/java/net/UDPClient.java | 28 +++++ .../java/org/hongxi/java/net/UDPServer.java | 25 ++++ .../org/hongxi/java/nio/MappedFileTest.java | 23 ++++ .../org/hongxi/java/nio/MultiPortEcho.java | 108 ++++++++++++++++++ .../test/java/org/hongxi/java/rmi/Client.java | 18 +++ .../test/java/org/hongxi/java/rmi/Server.java | 17 +++ .../test/java/org/hongxi/java/rmi/User.java | 30 +++++ .../java/org/hongxi/java/rmi/UserService.java | 12 ++ .../org/hongxi/java/rmi/UserServiceImpl.java | 19 +++ 21 files changed, 439 insertions(+), 9 deletions(-) create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/io/FileTest.java rename whatsmars-common/src/test/java/org/hongxi/java/{util => }/lang/CodeBlockTest.java (94%) rename whatsmars-common/src/test/java/org/hongxi/java/{util => }/lang/ExTest.java (94%) rename whatsmars-common/src/test/java/org/hongxi/java/{util => }/lang/oop/Animal.java (86%) rename whatsmars-common/src/test/java/org/hongxi/java/{util => }/lang/oop/Cat.java (89%) rename whatsmars-common/src/test/java/org/hongxi/java/{util => }/lang/oop/ChinaCat.java (90%) rename whatsmars-common/src/test/java/org/hongxi/java/{util => }/lang/singleton/EagerSingleton.java (85%) rename whatsmars-common/src/test/java/org/hongxi/java/{util => }/lang/singleton/EnumSingleton.java (85%) rename whatsmars-common/src/test/java/org/hongxi/java/{util => }/lang/singleton/InnerClassSingleton.java (88%) rename whatsmars-common/src/test/java/org/hongxi/java/{util => }/lang/singleton/LazySingleton.java (90%) create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/net/TCPClient.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/net/TCPServer.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/net/UDPClient.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/net/UDPServer.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/nio/MappedFileTest.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/nio/MultiPortEcho.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/rmi/Client.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/rmi/Server.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/rmi/User.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/rmi/UserService.java create mode 100644 whatsmars-common/src/test/java/org/hongxi/java/rmi/UserServiceImpl.java diff --git a/whatsmars-common/src/test/java/org/hongxi/java/io/FileTest.java b/whatsmars-common/src/test/java/org/hongxi/java/io/FileTest.java new file mode 100644 index 00000000..9c4c7e09 --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/io/FileTest.java @@ -0,0 +1,23 @@ +package org.hongxi.java.io; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.PrintWriter; + +/** + * Created by shenhongxi on 2018/10/25. + */ +public class FileTest { + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new FileReader("/Users/javahongxi/Documents/white_list.txt")); + PrintWriter pw = new PrintWriter("/Users/javahongxi/Documents/white_list02.txt"); + String line = null; + while ((line = br.readLine()) != null) { + pw.println(line); + } + pw.flush(); + pw.close(); + br.close(); + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/CodeBlockTest.java b/whatsmars-common/src/test/java/org/hongxi/java/lang/CodeBlockTest.java similarity index 94% rename from whatsmars-common/src/test/java/org/hongxi/java/util/lang/CodeBlockTest.java rename to whatsmars-common/src/test/java/org/hongxi/java/lang/CodeBlockTest.java index 54e2336b..a012b8b6 100644 --- a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/CodeBlockTest.java +++ b/whatsmars-common/src/test/java/org/hongxi/java/lang/CodeBlockTest.java @@ -1,4 +1,4 @@ -package org.hongxi.java.util.lang; +package org.hongxi.java.lang; /** * Created by shenhongxi on 2017/11/17. diff --git a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/ExTest.java b/whatsmars-common/src/test/java/org/hongxi/java/lang/ExTest.java similarity index 94% rename from whatsmars-common/src/test/java/org/hongxi/java/util/lang/ExTest.java rename to whatsmars-common/src/test/java/org/hongxi/java/lang/ExTest.java index 847452c5..edf000d6 100644 --- a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/ExTest.java +++ b/whatsmars-common/src/test/java/org/hongxi/java/lang/ExTest.java @@ -1,4 +1,4 @@ -package org.hongxi.java.util.lang; +package org.hongxi.java.lang; /** * Created by shenhongxi on 2018/6/1. diff --git a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/oop/Animal.java b/whatsmars-common/src/test/java/org/hongxi/java/lang/oop/Animal.java similarity index 86% rename from whatsmars-common/src/test/java/org/hongxi/java/util/lang/oop/Animal.java rename to whatsmars-common/src/test/java/org/hongxi/java/lang/oop/Animal.java index e84314f0..034a4ead 100644 --- a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/oop/Animal.java +++ b/whatsmars-common/src/test/java/org/hongxi/java/lang/oop/Animal.java @@ -1,4 +1,4 @@ -package org.hongxi.java.util.lang.oop; +package org.hongxi.java.lang.oop; /** * @author shenhongxi 2019/8/11 diff --git a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/oop/Cat.java b/whatsmars-common/src/test/java/org/hongxi/java/lang/oop/Cat.java similarity index 89% rename from whatsmars-common/src/test/java/org/hongxi/java/util/lang/oop/Cat.java rename to whatsmars-common/src/test/java/org/hongxi/java/lang/oop/Cat.java index 0aaeb4fa..07b7fb18 100644 --- a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/oop/Cat.java +++ b/whatsmars-common/src/test/java/org/hongxi/java/lang/oop/Cat.java @@ -1,4 +1,4 @@ -package org.hongxi.java.util.lang.oop; +package org.hongxi.java.lang.oop; /** * @author shenhongxi 2019/8/11 diff --git a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/oop/ChinaCat.java b/whatsmars-common/src/test/java/org/hongxi/java/lang/oop/ChinaCat.java similarity index 90% rename from whatsmars-common/src/test/java/org/hongxi/java/util/lang/oop/ChinaCat.java rename to whatsmars-common/src/test/java/org/hongxi/java/lang/oop/ChinaCat.java index f0157795..48baf57d 100644 --- a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/oop/ChinaCat.java +++ b/whatsmars-common/src/test/java/org/hongxi/java/lang/oop/ChinaCat.java @@ -1,4 +1,4 @@ -package org.hongxi.java.util.lang.oop; +package org.hongxi.java.lang.oop; /** * @author shenhongxi 2019/8/11 diff --git a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/EagerSingleton.java b/whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/EagerSingleton.java similarity index 85% rename from whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/EagerSingleton.java rename to whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/EagerSingleton.java index 19d88217..adaf9564 100644 --- a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/EagerSingleton.java +++ b/whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/EagerSingleton.java @@ -1,4 +1,4 @@ -package org.hongxi.java.util.lang.singleton; +package org.hongxi.java.lang.singleton; /** * @author shenhongxi 2019/8/11 diff --git a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/EnumSingleton.java b/whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/EnumSingleton.java similarity index 85% rename from whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/EnumSingleton.java rename to whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/EnumSingleton.java index 737d9722..49605fc0 100644 --- a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/EnumSingleton.java +++ b/whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/EnumSingleton.java @@ -1,4 +1,4 @@ -package org.hongxi.java.util.lang.singleton; +package org.hongxi.java.lang.singleton; /** * @author shenhongxi 2019/8/11 diff --git a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/InnerClassSingleton.java b/whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/InnerClassSingleton.java similarity index 88% rename from whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/InnerClassSingleton.java rename to whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/InnerClassSingleton.java index fdaa1905..00a62c07 100644 --- a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/InnerClassSingleton.java +++ b/whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/InnerClassSingleton.java @@ -1,4 +1,4 @@ -package org.hongxi.java.util.lang.singleton; +package org.hongxi.java.lang.singleton; /** * @author shenhongxi 2019/8/11 diff --git a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/LazySingleton.java b/whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/LazySingleton.java similarity index 90% rename from whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/LazySingleton.java rename to whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/LazySingleton.java index 5296f63d..d5f691ed 100644 --- a/whatsmars-common/src/test/java/org/hongxi/java/util/lang/singleton/LazySingleton.java +++ b/whatsmars-common/src/test/java/org/hongxi/java/lang/singleton/LazySingleton.java @@ -1,4 +1,4 @@ -package org.hongxi.java.util.lang.singleton; +package org.hongxi.java.lang.singleton; /** * @author shenhongxi 2019/8/11 diff --git a/whatsmars-common/src/test/java/org/hongxi/java/net/TCPClient.java b/whatsmars-common/src/test/java/org/hongxi/java/net/TCPClient.java new file mode 100644 index 00000000..8e2f4a4c --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/net/TCPClient.java @@ -0,0 +1,46 @@ +package org.hongxi.java.net; + +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Socket; +import java.net.UnknownHostException; + +public class TCPClient { + + public static void main(String[] args) { + new TCPClient().connect(); + } + + public void connect() { + @SuppressWarnings("unused") + boolean started = false; + Socket s = null; + DataOutputStream dos = null; + try { + s = new Socket("127.0.0.1", 5555); + dos = new DataOutputStream(s.getOutputStream()); + started = true; + System.out.println("Yeah, I connected"); + Thread.sleep(3000); + dos.writeUTF("Happy"); + dos.flush(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + try { + if (dos != null) { + dos.close(); + } + if (s != null) { + s.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/net/TCPServer.java b/whatsmars-common/src/test/java/org/hongxi/java/net/TCPServer.java new file mode 100644 index 00000000..5807c055 --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/net/TCPServer.java @@ -0,0 +1,81 @@ +package org.hongxi.java.net; + +import java.io.DataInputStream; +import java.io.IOException; +import java.net.BindException; +import java.net.ServerSocket; +import java.net.Socket; + +public class TCPServer { + boolean started; + ServerSocket ss; + + public static void main(String[] args) { + new TCPServer().start(); + } + + private void start() { + try { + ss = new ServerSocket(5555); + started = true; + System.out.println("Server started"); + } catch (BindException e) { + e.printStackTrace(); + System.exit(0); + } catch (IOException e) { + e.printStackTrace(); + } + + try { + + while(started) { + Socket s = ss.accept(); + Client c = new Client(s); + System.out.println("a client connected!"); + new Thread(c).start(); + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (ss != null) ss.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + private class Client extends Thread { + private Socket s; + private DataInputStream dis; + + public Client(Socket s) { + this.s = s; + try { + dis = new DataInputStream(s.getInputStream()); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void run() { + try { + System.out.println(dis.readUTF()); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (dis != null) { + dis.close(); + } + if (s != null) { + s.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/net/UDPClient.java b/whatsmars-common/src/test/java/org/hongxi/java/net/UDPClient.java new file mode 100644 index 00000000..a5e4d1a3 --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/net/UDPClient.java @@ -0,0 +1,28 @@ +package org.hongxi.java.net; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetSocketAddress; + +public class UDPClient { + public static void main(String[] args) { + try { + long n = 1000L; + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(baos); + dos.writeLong(n); + //byte[] buf = new String("Hello").getBytes(); + byte[] buf = baos.toByteArray(); + DatagramPacket dp = new DatagramPacket(buf, buf.length, + new InetSocketAddress("localhost", 5678)); + DatagramSocket ds = new DatagramSocket(9999); + ds.send(dp); + ds.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/net/UDPServer.java b/whatsmars-common/src/test/java/org/hongxi/java/net/UDPServer.java new file mode 100644 index 00000000..97a25f6b --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/net/UDPServer.java @@ -0,0 +1,25 @@ +package org.hongxi.java.net; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; + +public class UDPServer { + public static void main(String[] args) { + try { + byte[] buf = new byte[1024]; + DatagramPacket dp = new DatagramPacket(buf, buf.length); + DatagramSocket ds = new DatagramSocket(5678); + while (true) { + ds.receive(dp); + ByteArrayInputStream bais = new ByteArrayInputStream(buf); + DataInputStream dis = new DataInputStream(bais); + System.out.println(dis.readLong()); + } + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/nio/MappedFileTest.java b/whatsmars-common/src/test/java/org/hongxi/java/nio/MappedFileTest.java new file mode 100644 index 00000000..5fade4f1 --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/nio/MappedFileTest.java @@ -0,0 +1,23 @@ +package org.hongxi.java.nio; + +import java.io.RandomAccessFile; +import java.nio.MappedByteBuffer; +import java.nio.channels.FileChannel; + +public class MappedFileTest { + static private final int start = 0; + static private final int size = 1024; + + static public void main(String args[]) throws Exception { + RandomAccessFile raf = new RandomAccessFile("mappedfile.txt", "rw"); + FileChannel fc = raf.getChannel(); + + MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE, + start, size); + + mbb.put(0, (byte) 97); + mbb.put(1023, (byte) 122); + + raf.close(); + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/nio/MultiPortEcho.java b/whatsmars-common/src/test/java/org/hongxi/java/nio/MultiPortEcho.java new file mode 100644 index 00000000..5a9b203b --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/nio/MultiPortEcho.java @@ -0,0 +1,108 @@ +package org.hongxi.java.nio;// $Id$ + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.ServerSocket; +import java.nio.ByteBuffer; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.ServerSocketChannel; +import java.nio.channels.SocketChannel; +import java.util.Iterator; +import java.util.Set; + +public class MultiPortEcho { + private int ports[]; + private ByteBuffer echoBuffer = ByteBuffer.allocate(1024); + + public MultiPortEcho(int ports[]) throws IOException { + this.ports = ports; + + go(); + } + + private void go() throws IOException { + // Create a new selector + Selector selector = Selector.open(); + + // Open a listener on each port, and register each one + // with the selector + for (int i = 0; i < ports.length; ++i) { + ServerSocketChannel ssc = ServerSocketChannel.open(); + ssc.configureBlocking(false); + ServerSocket ss = ssc.socket(); + InetSocketAddress address = new InetSocketAddress(ports[i]); + ss.bind(address); + + SelectionKey key = ssc.register(selector, SelectionKey.OP_ACCEPT); + + System.out.println("Going to listen on " + ports[i]); + } + + while (true) { + int num = selector.select(); + + Set selectedKeys = selector.selectedKeys(); + Iterator it = selectedKeys.iterator(); + + while (it.hasNext()) { + SelectionKey key = (SelectionKey) it.next(); + + if ((key.readyOps() & SelectionKey.OP_ACCEPT) + == SelectionKey.OP_ACCEPT) { + // Accept the new connection + ServerSocketChannel ssc = (ServerSocketChannel) key.channel(); + SocketChannel sc = ssc.accept(); + sc.configureBlocking(false); + + // Add the new connection to the selector + SelectionKey newKey = sc.register(selector, SelectionKey.OP_READ); + it.remove(); + + System.out.println("Got connection from " + sc); + } else if ((key.readyOps() & SelectionKey.OP_READ) + == SelectionKey.OP_READ) { + // Read the data + SocketChannel sc = (SocketChannel) key.channel(); + + // Echo data + int bytesEchoed = 0; + while (true) { + echoBuffer.clear(); + + int r = sc.read(echoBuffer); + + if (r <= 0) { + break; + } + + echoBuffer.flip(); + + sc.write(echoBuffer); + bytesEchoed += r; + } + + System.out.println("Echoed " + bytesEchoed + " from " + sc); + + it.remove(); + } + + } + } + } + + static public void main(String args[]) throws Exception { + if (args.length <= 0) { + System.err.println("Usage: java MultiPortEcho port [port port ...]"); + System.exit(1); + } + + int ports[] = new int[args.length]; + + for (int i = 0; i < args.length; ++i) { + ports[i] = Integer.parseInt(args[i]); + } + + new MultiPortEcho(ports); + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/rmi/Client.java b/whatsmars-common/src/test/java/org/hongxi/java/rmi/Client.java new file mode 100644 index 00000000..d8b50561 --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/rmi/Client.java @@ -0,0 +1,18 @@ +package org.hongxi.java.rmi; + +import java.rmi.Naming; + +/** + * Created by shenhongxi on 2016/4/18. + */ +public class Client { + + public static void main(String[] args) throws Exception { + UserService userService = (UserService) Naming.lookup("rmi://127.0.0.1:8899/userService"); + User user = new User(); + user.setName("Mars"); + user.setAge(27); + String hi = userService.hi(user); + System.out.println(hi); + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/rmi/Server.java b/whatsmars-common/src/test/java/org/hongxi/java/rmi/Server.java new file mode 100644 index 00000000..29f175ff --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/rmi/Server.java @@ -0,0 +1,17 @@ +package org.hongxi.java.rmi; + +import java.rmi.Naming; +import java.rmi.registry.LocateRegistry; + +/** + * Created by shenhongxi on 2016/4/18. + * java RMI 的局限性是只能在java环境使用,另外依赖ip/port + */ +public class Server { + + public static void main(String[] args) throws Exception { + UserService userService = new UserServiceImpl(); + LocateRegistry.createRegistry(8899); + Naming.rebind("rmi://127.0.0.1:8899/userService", userService); + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/rmi/User.java b/whatsmars-common/src/test/java/org/hongxi/java/rmi/User.java new file mode 100644 index 00000000..48b03ebb --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/rmi/User.java @@ -0,0 +1,30 @@ +package org.hongxi.java.rmi; + +import java.io.Serializable; + +/** + * Created by shenhongxi on 2016/4/18. + */ +public class User implements Serializable { + + private static final long serialVersionUID = 7105466693678286106L; + private String name; + + private int age; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/rmi/UserService.java b/whatsmars-common/src/test/java/org/hongxi/java/rmi/UserService.java new file mode 100644 index 00000000..01fa4cb3 --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/rmi/UserService.java @@ -0,0 +1,12 @@ +package org.hongxi.java.rmi; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +/** + * Created by shenhongxi on 2016/4/18. + */ +public interface UserService extends Remote { + + String hi(User user) throws RemoteException; +} diff --git a/whatsmars-common/src/test/java/org/hongxi/java/rmi/UserServiceImpl.java b/whatsmars-common/src/test/java/org/hongxi/java/rmi/UserServiceImpl.java new file mode 100644 index 00000000..b508f795 --- /dev/null +++ b/whatsmars-common/src/test/java/org/hongxi/java/rmi/UserServiceImpl.java @@ -0,0 +1,19 @@ +package org.hongxi.java.rmi; + +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; + +/** + * Created by shenhongxi on 2016/4/18. + */ +public class UserServiceImpl extends UnicastRemoteObject implements UserService { + + public UserServiceImpl() throws RemoteException { + super(); + } + + @Override + public String hi(User user) throws RemoteException { + return "Hi, " + user.getName() + ", your age is " + user.getAge() + "?"; + } +} -- GitLab