如果指定错误的端口号,为什么LocateRegistry.getRegistry()失败?

时间:2015-03-03 21:13:34

标签: java rmi distributed distributed-computing

我试图分发一个我实施的简单房间预订系统,我尝试研究,这就是我想出来的......但是当我运行它们并输入不同的端口号时,客户端仍然运行..shouldn&只有当端口号与我为服务器输入的端口号匹配时才会运行?我做错了什么?

对于客户:

 public static void main (String[] args)
{
Scanner s = new Scanner (System.in);

int portNum = 1099;//default port 
try {
          System.out.print("Enter the port number");
          portNum= s.nextInt();

            Registry reg= LocateRegistry.getRegistry("localhost", portNum);

        System.out.println("Connected to RMI server");

对于服务器:

public static void main(String argv[]) {
int portNum = 1099;
 try {

     Scanner s = new Scanner (System.in);
 HotelServer  server  = new HotelServer ();
 //register it with the local naming registry
   try
      {

       System.out.print("Enter The Port Number");
       portNum= s.nextInt();
          Registry reg= LocateRegistry.createRegistry(portNum);
          reg.bind("localhost", server);
          System.out.println("Server started");

1 个答案:

答案 0 :(得分:1)

LocateRegistry.getRegistry()获取结果并不表示您已连接到任何内容。它不执行任何网络操作。它只是构造一个存根。如果端口号不正确,则在尝试使用它之前不会发现它。