`

RMI如何固定分配端口 .

 
阅读更多
RMI之所以使用的范围受限制主要有两方面原因,其一:必须要是java,平台的异构性受到限制;其二:穿越防火墙不方便。这里主要谈谈RMI如何通过固定分配端口来穿越防火墙。     RMI穿越防火墙不方便主要是因为除了RMI服务注册的端口(默认1099)外,与RMI的通讯还需要另外的端口来传送数据,而另外的端口是随机分配的,所以要想RMI的客户能通过防火墙来与RMI服务通讯,则需要能让随机分配的端口固定下来,具体做法如下:

     1、增加一个文件SMRMISocket.java
import   java.rmi.server.*;  

import   java.io.*;  

import   java.net.*;  

public   class   SMRMISocket   extends   RMISocketFactory   {  

          public   Socket   createSocket(String   host,   int   port)  throws   IOException{  

                  return   new   Socket(host,port);  

          }  



          public   ServerSocket   createServerSocket(int   port)   throws   IOException   {  

                  if   (port   ==   0)  

                          port   =   10990; //不指定就随机分配了 

                  return   new   ServerSocket(port);  

          }  

  }   




  }     2、在实例化UnicastRemoteObject的子类前加入一下代码:

         try {

    	    RMISocketFactory.setSocketFactory(new SMRMISocket());

    	} catch (Exception ex) { 

    	}

这样的话RMI分配的端口就被固定了,防火墙只需要打开1099和10990端口即可。
分享到:
评论

相关推荐

    rmi设置

    7. **防火墙设置**:由于RMI涉及到多个端口,所以如果在有防火墙的环境中,需要配置相应的端口开放策略,通常包括Registry默认的1099端口以及动态分配的端口范围。 【标签】:“源码”和“工具”表明这个话题可能...

    java RMI分布式计算(两矩阵相乘)源码

    6. **并发与并行计算**:在分布式计算中,通常会将大矩阵拆分成小块,分配给多个远程对象处理。每个远程对象负责处理一部分矩阵相乘工作,最后客户端收集所有结果并整合成最终的矩阵。 7. **异常处理**:由于网络...

    jboss5.0.1GA端口配置

    - 在修改端口配置前,请务必确保新分配的端口未被其他服务占用。 - 配置文件修改后,一定要重启服务以使新配置生效。 - 如果使用防火墙,请确保新端口已经被正确开放。 - 对于生产环境,建议在非高峰时段进行此类...

    rmi 连接多 IP 多服务端自动路由

    5. **负载均衡器**:为了更高效和稳定,可以引入负载均衡器,它负责管理服务列表,执行健康检查和负载分配。 6. **服务监控**:使用日志和监控工具记录服务状态,以便在出现问题时快速定位和解决。 在实际应用中,...

    常用协议端口号[文].pdf

    * ICMP(不存在固定端口):用于网络诊断和错误报告的协议 * IMAP(143):用于Internet邮件访问的协议 * IRC(6667):用于Internet Relay Chat的协议 * ISAKMP(500):用于安全会话建立的协议 * JABBER(5222):...

    运行jar程序时添加vm参数的方法

    VM参数,即Java虚拟机参数,用于设置JVM的行为,包括内存分配、垃圾回收策略、性能监控等。这些参数以-D或-X开头,用于定制JVM的行为和环境变量。 当运行JAR程序时,我们可以通过以下命令行方式添加VM参数: ```...

    JBoss Ports

    为了避免端口冲突,需要为每个JBoss实例分配独特的端口号。 4. **集群部署提升性能**:如果您计划在一个集群环境中部署多个JBoss实例以提高可用性和性能,那么每个实例都必须有不同的端口设置。 #### 二、JBoss 4.x...

    Tomcat开启JMX功能,使jdk自带的JVisvualVM工具连接JVM,轻松进行性能分析(csdn)————.pdf

    连接成功后,JVisualVM会显示与Tomcat相关的各种监控信息,包括CPU使用率、内存分配、线程状态、类加载情况等。你可以实时查看这些数据,帮助识别和解决性能瓶颈。 总的来说,通过开启Tomcat的JMX功能并利用...

    在jboss同时启动两个实例

    - **端口号**:每个JBoss实例都需要分配不同的端口号,包括HTTP端口、管理控制台端口、JNDI端口等。 - **配置文件**:JBoss通过一系列配置文件来定义其行为,包括服务器的启动参数、监听端口等信息。 - **部署目录**...

    jvisualvm使用方法

    这里`-XX:PermSize`表示初始化时分配的PermGen空间大小,而`-XX:MaxPermSize`则指定了最大可使用的PermGen空间。 #### 总结与建议 通过上述步骤,我们可以有效地利用jvisualvm工具监控并解决Java应用程序中的内存...

    Hadoop环境搭建 附件.rar

    11. **远程调试配置**: 要实现远程调试,你需要在`hadoop-env.sh`中添加`export HADOOP_OPTS="$HADOOP_OPTS -Djava.rmi.server.hostname=YOUR_IP"`,替换YOUR_IP为你的公网IP。此外,确保Hadoop的JVM允许远程调试,...

    自己实践jconsole远程配置方法傻瓜型文档

    需要注意的是,在生产环境中,出于安全考虑,通常会启用认证和加密功能,并为不同的用户分配合适的权限。此外,还可以通过调整其他系统属性来进一步优化监控效果。掌握jconsole远程监控的配置方法对于运维人员来说是...

    hessian应用

    caucho公司的resin服务器号称是最快的服务器,在java领域有一定的知名度。Hessian做为resin的组成部分,其设计也非常精简高效,实际运行情况也证明了这一点。...而且,RMI需要开防火墙端口,Hessian不用。

    Java多线程的监控分析工具(VisualVM).doc

    这需要开启RMI服务,并配置相应的安全策略和端口。 对于远程监控JBoss服务,需要修改JDK的JMX配置文件,打开JMX远程访问,并在JBoss启动脚本中指定相应的JMX端口和认证参数。例如,设置`-Dcom.sun.management....

    jmc使用说明

    内存监控可以显示内存分配、使用和回收的情况;IO监控关注的是数据的输入输出操作;堆栈信息则能够提供方法调用的堆栈追踪,帮助定位性能瓶颈和程序中的死锁情况。 标签“java jmc”指明了这个工具是与Java语言紧密...

    jmeter第6章 高级篇之分布式压测基础知识

    - **安全性**:由于涉及到网络通信,应确保RMI端口的安全,防止未授权访问。 - **日志和异常处理**:确保从节点上的错误和异常信息能够被记录和分析,以便于定位问题。 总之,JMeter的分布式压测功能提供了一种强大...

    weblogic管理指南

    3. RMI(Remote Method Invocation):配置RMI服务,允许远程调用对象方法,实现分布式计算。 4. JTA(Java Transaction API):配置事务管理,确保事务的一致性和原子性。 通过深入理解和实践这些知识点,可以有效...

    alfresco4.0部署及分离solr

    - 同样,调整其他服务端口,如FTP和RMI,以保持网络服务的清晰性 ### 6. 设置Solr分离部署 - 安装单独的Solr服务器,解压并配置Solr的Alfresco核心 - 更新Alfresco的`alfresco-global.properties`文件,指定新的...

    weblogic8.14安装及环境配置指南

    4. 配置网络协议和端口,确保与其他服务无冲突,如HTTP默认为7001,RMI默认为1099。 5. 创建域,这是WebLogic管理应用程序和服务的基本单元。每个域包含一个或多个服务器实例。 6. 设置管理用户名和密码,这些凭据...

    Proyecto_Guacamole:Proyecto de Sistemas Distribuidos usando TCP,多播和RMI en Java

    3. **配置文件(config)**:可能包含TCP和多播的相关配置,如端口设置、多播组地址等。 4. **测试目录(test)**:包含单元测试和集成测试用例,以验证不同组件的功能和相互协作。 5. **文档(docs)**:项目文档,...

Global site tag (gtag.js) - Google Analytics