⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agentservice.java

📁 javaP2P技术内幕课程111213141516源代码
💻 JAVA
字号:
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;

import java.util.Properties;
import java.rmi.activation.Activatable;
import java.rmi.activation.ActivationDesc;
import java.rmi.activation.ActivationID;
import java.rmi.activation.ActivationGroup;
import java.rmi.activation.ActivationGroupDesc;
import java.rmi.activation.ActivationGroupID;
import java.rmi.MarshalledObject;


public class AgentService extends Activatable
                           implements Agent
{
    public AgentService(ActivationID id, MarshalledObject data) throws RemoteException {
        // register object with activation system using anonymous port
        super(id, 0);
    }


    public static void main(String[] args) {

      if(args.length < 3) {
         System.out.println("usage [hostname] [codebase] [security_policy]");
         System.exit(1);
      }

      String hostname = args[0];
      String codebase = args[1];
      String policy = args[2];

      try {
          if (System.getSecurityManager() == null) {
             System.setSecurityManager(new RMISecurityManager());
          }
  
           // create the activation group description
           Properties props = new Properties();
           props.put("java.security.policy", policy);
           props.put("java.rmi.server.codebase", codebase);
                
           ActivationGroupDesc agd = new ActivationGroupDesc(props, null);
           ActivationGroupID agi = ActivationGroup.getSystem().registerGroup(agd);
           ActivationGroup.createGroup(agi, agd, 0);

           // create the activation object description     
           ActivationDesc ad = new ActivationDesc("AgentService", 
                                                 codebase,
                                                 null, 
                                                 true);
    
           // register the activation description with rmid
           Agent agent = (Agent) Activatable.register(ad);
 
            // bind the stub to the registry
            String name = "//" + hostname + "/AgentService";
            Naming.rebind(name, agent);
            System.out.println("AgentService bound");

            System.exit(0);
        } catch (Exception e) {
            System.err.println("AgentService exception: " + 
          e.getMessage());
            e.printStackTrace();
        }
   }

    // implementation of the Agent interface
    public String talk() {
        return "P2P is very cool";
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -