Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Пример использования RMI

Поиск:
Спасибо большое Domestic Cat за предоставленную информацию

Interface Hello:

Код

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Hello extends Remote
{
   public String helloWorld () throws RemoteException;
}


class HelloImpl

Код

import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;

public class HelloImpl extends UnicastRemoteObject implements Hello
{
   public HelloImpl() throws RemoteException
   {
       // empty but must throw RemoteException
   }
   
   public String helloWorld () throws RemoteException
   {
           return "Hello world";
   }
}



class Server
Код

import java.rmi.Naming;
import java.rmi.server.UnicastRemoteObject;
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.NotBoundException;

public class Server
{
   private static final String SERVER_NAME = "Server";
   private static final String HOST = "localhost";
   
   private String  port;
   
   public Server(String port)    
   {
       this.port = port;
   }
   
   public void runServer() throws  IllegalArgumentException,
                                   NotBoundException,
                                   RemoteException
   {
       HelloImpl helloImpl = new HelloImpl();
       Registry registry = LocateRegistry.createRegistry(Integer.parseInt(port, 10));
       String url = "//" + HOST + ":" + port + "/" + SERVER_NAME;
       registry.rebind(SERVER_NAME, helloImpl);
   }
}


Class Start

Код

import java.rmi.Naming;
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.NotBoundException;

public class Start
{
   public static final String SERVER_NAME = "Server";
   // use : server <port> - start server
   // client <host> <port> - start client
   public static void main (String[] args) throws Exception  
   {
       if (args[0].equals("server"))
       {
           Server server = new Server(args[1]);
           server.runServer();
           System.out.println("Server started on port " + args[1]);
       }
       else
       {
           String lookupString = "//" + args[1] + ":" + args[2] + "/" + SERVER_NAME;
           Hello hello = (Hello) Naming.lookup(lookupString);
           System.out.println("RMI object found");
           System.out.println(hello.helloWorld());
       }
   }
}


1. javac *.java
2. rmic HelloImpl (получатся 2 файла - _stub i _skel)
3. Запустить сервер: java Start server 2000 // любой порт > 1023
4. Во второй JVM запустить клиента:
java Start client xxx.xxx.xxx.xxx 2000 // ваш хост

Учтите, что через файервол это работать не будет (скорее всего), если не открыт соответствующий порт.
Автор: Sun






Просмотров: 7458

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную