关于RMI服务端端口定制的处理办法

简介:

文章标题: 关于RMI服务端端口定制的处理办法

 

作者: javaboy2012
Email:yanek@163.com
qq:    1046011462


关于RMI服务器对外提供服务通常需要两个端口:

注册端口和服务端口

如果不做处理,每次启动服务,提供服务的端口会改变,如果需要固定下来需要做如下处理:


编写一个类如下:

package com.yanek.rmi;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.rmi.server.RMISocketFactory;

public class CustomSocket extends RMISocketFactory {

 /**
  * @param args
  */
 public static void main(String[] args) {


 }

 @Override
 public ServerSocket createServerSocket(int port) throws IOException {
  
  if (port==0)
  {
   port=8866;
  }
  return new ServerSocket(port);
 }

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

  System.out.println("host:"+host+" port:"+port);
  return new Socket(host,port);
 }

}

 

这样服务端口就是固定为8866了。

注册的端口在启动服务的类里设置:

如下为启动的类:

package com.yanek.cms.rmi;

import java.io.IOException;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.RMISocketFactory;

public class RMIServer {

 /**
  * @param args
  */
 public static void main(String[] args) {

  try {
   

   CustomSocket cs=new CustomSocket();
   try {
    RMISocketFactory.setSocketFactory(cs);
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   
   
   LocateRegistry.createRegistry(1099);
   Naming.rebind("UserFav", UserFav.getInstance());
   
   System.out.println("RMI Server ready.");
   
  } catch (RemoteException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (MalformedURLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 }

}


这样,服务程序就通过 8866和1099 对外 提供服务了,设置防火墙只要设置这两个端口开放就可以了。

 

目录
相关文章
|
存储 Kubernetes 安全
Nacos常见问题之服务端grpc请求服务端端口一直不可用
Nacos是一款易于使用的动态服务发现、配置管理和服务管理平台,针对不同版本可能出现的兼容性和功能问题,本汇总贴心整理了用户在使用Nacos时可能遇到的版本相关问题及答案,以便用户能够更顺畅地进行服务治理和配置管理。
712 0
|
测试技术
Netty4 websocket 开启服务端并设置IP和端口号
Netty4 websocket 开启服务端并设置IP和端口号
505 0
|
JSON 网络协议 Java
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
前后端分离项目中,在调用接口调试时候,我们可以通过cpolar内网穿透将本地服务端接口模拟公共网络环境远程调用调试,本次教程我们以Java服务端接口为例。
321 0
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
|
JSON 网络协议 Java
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
295 0
Zp
|
网络协议 Linux
Linux系统查看端口的操作办法
Linux系统查看端口的操作办法
Zp
890 0
|
JSON 网络协议 Java
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】
467 0
|
Java 应用服务中间件 Linux
使用Holer服务端软件实现基于自己Holer服务器的端口映射功能
用户可以下载Holer服务端软件搭建自己的Holer服务端,实现基于自己Holer服务端的端口映射功能。
1663 0
|
PHP C语言 Linux
用php模拟做服务端侦听端口
参考:http://www.cnblogs.com/thinksasa/archive/2013/02/26/2934206.html   http://blog.csdn.net/alongken2005/article/details/8056910   socket_accept()是服务端接受客户端请求,一旦有一个客户端链接上来的话,则这个函数会返回一个新的socket资源,这个资源是与客户端通信的资源。
964 0