Remote Method Invocation (RMI) Project

RMI workflow

TCP Sockets

workflow

Knowledge

  • Socket programming
  • Multithreads programming
    • threadpool
  • Proxy
    • InvocationHandler
    • invoke
  • Java Reflection
    • Class
    • method
    • InvocationTargetException.
  • Serialization
    • ObjectInputStream/ObjectOutputStream.

TroubleShoot

  • Skeleton有一个指示server是否active的变量,这个变量需要注意thread-safe问题。

  • Docker中创建两个containers,如何相互ping,如何获取对方的IP的地址?

docker run -itd --name "server" rmi_img java -cp . pingPong.server.Server 7000

docker run -itd --name "client" --link server rmi_img java -cp . pingPong.client.Client server 7000

先创建一个名叫server的container,然后在创建client时使用--link option,这样的话,server的hostname就是’server’,client可以根据hostname来创建socket

  • Docker中创建一个container之后,如何让它在background run而不是立即exit?

docker run -itd --name "server" rmi_img /bin/bash

-itd option,然后run /bin/bash,然后用docker attach server进入container的bash

Resources: