RMI和Socket的区别

RMI和Socket的区别

本文描述了客户机和服务器的设置技术,客户机连接,向服务器发送消息,服务器使用连接显示它们,反之亦然。RMI和Socket都用于在客户机和服务器之间建立连接,但是RMI和Socket之间有一些主要的区别,让我们来研究一下。

但在此之前,让我们了解什么是RMI,什么是Socket和它们的组件。

远程方法调用(RMI)

远程方法调用基本上是一个API,它允许一个对象调用运行在另一台机器的JVM(服务器端)上的对象的方法。在RMI中,我们通常创建两个程序,客户端和服务器端。两边都有它们的入口入口,即树桩和骷髅。RMI用于高级java到java分布式计算。简而言之,RMI创建了一个公共远程服务器对象,该对象允许通过对服务器对象的简单方法调用进行客户机和服务器端通信。RMI的一个更大的问题是,它只在Java中可用,因此客户端和服务器需要在Java中实现。

RMI的元素:

  • Stubs :存根是客户端的网关,构建信息块并将信息发送到服务器端。信息块可能包含要调用的方法名、远程JVM的参数和要使用的远程对象的标识符。
  • Skeleton 与存根类似,骨架是服务器端的网关,它将请求从存根对象发送到远程对象。
  • RRL :远程引用层用于管理客户端对远程对象的引用。
  • Transport layer :它有助于连接客户端和服务器,并管理它们之间已有的连接。

RMI和Socket的区别

实现RMI连接的基本步骤如下:

  1. 定义远程接口
  2. 实现远程接口
  3. 使用rmic (RMI编译器)从实现类创建Stub和Skeleton对象
  4. 启动rmiregistry
  5. 创建并执行服务器应用程序
  6. 创建并执行客户端应用程序。

Socket

套接字编程也是一种技术,用于在套接字的帮助下在客户端和服务器端之间建立连接。套接字只不过是网络中两个程序之间的双向通信链接。要连接到另一台机器,我们需要套接字连接。这意味着两台机器拥有彼此的网络位置和TCP端口的信息。套接字类似于网关,通过某些特定的端口号为程序提供访问点。套接字连接可以是TCP或UDP。基于套接字的通信独立于编程语言。

socket主要有四种类型:

  • Stream Socket :流套接字使用TCP进行数据传输。
  • Datagram Socket :数据报套接字使用UDP协议进行数据传输。
  • Raw Socket :原始套接字用于接收原始数据包。
  • 测序包套接字 :这些非常类似于流套接字,TCP流套接字不维护套接字边界。但是,这个套接字连接保持消息边界类似于UDP套接字连接。

RMI和Socket的区别

RMI和Socket的区别:

编号 RMI Socket
1. 远程方法调用基本上是一个API,它允许一个对象调用在另一台机器的JVM中运行的对象上的方法。 套接字只不过是网络中两个程序(客户机和服务器)之间的双向通信链接。
2. RMI是远程方法调用,这意味着在客户机-服务器通信中远程调用方法或访问远程站点。 套接字类似于网关,通过某些特定的端口号为程序提供访问点。
3. RMI构建在套接字之上。没有套接字,RMI就不会存在。 在这种情况下,我们必须管理应用程序将使用哪些套接字和协议。尽管我们可以格式化在客户端和服务器端之间传输的消息。
4. RMI是面向对象的 然而事实并非如此。
5. RMI处理客户机和服务器之间的消息格式化。 这里我们指定了TCP或UDP类型,我们必须处理所有在客户端和服务器之间传输的消息的格式化。
6. RMI是特定于java的技术。 基于套接字的通信独立于编程语言。
7. RMI用于高级java到java分布式计算。 套接字用于底层网络通信。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程