`
tianlijia202
  • 浏览: 78710 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

RMI vs Socket

    博客分类:
  • java
阅读更多

文章选自:http://hi.baidu.com/yangtb/blog/item/632e772cc2fa07e88b13994c.html

RMI Vs Socket
         RMI技术比较socket的网络编程主要有以下几个方面:
        第一、.RMI是面向对象的,而后者不是。
        第二、.RMI是与语言相绑定的。比如当你使用Java RMI技术的时候,客户端与服务器端都必须使用Java开发。而socket的网络编程是使用独立于开发语言的,甚至独立于平台。基于socket的网络编程,客户端与服务器端可以使用不同开发语言和不同的平台。
       第三、从网络协议栈的观点来看,RMI与socket的网络编程处于不同层次上。基于socket的网络编程位于TCP协议之上,而RMI在TCP协议之上,又定义了自己的应用协议,其传输层采用的是Java远程方法协议(JRMP)。可见,在网络协议栈上,基于RMI的应用位置更高一些,这也决定了,与 socket的网络编程相比,RMI会丧失一些灵活性和可控性,但是好处是它带给了应用开发者更多的简洁,方便和易用。比如:如果你用的是RMI,你不需要关心消息是怎么序列化的,你只需要像本地方法调用一样,使用RMI。代价是:应用开发者无法很好地控制消息的序列化机制。
      第四、这是最后一点不同,我认为也是比较重要的一点,就是两种方法的性能比较,其往往决定着你将使用那种技术来开发你的应用。以下引用Adrian Reber在Network-programming with RMI文中对TCP和RMI所做的一个比较,其做的实验主要是对两者在网络传输的带宽上作的对比: 在网络上传输2 byte的有效数据,对于TCP而言,总共有478 byte被额外传输,而对于RMI, 1645byte被额外传输。
分享到:
评论

相关推荐

    基于RMI和Socket的带数据库的java聊天软件 客户端和服务器端

    Java聊天软件是网络通信的一种典型应用,而基于RMI(Remote Method Invocation)和Socket的实现方式则为这种软件提供了高效且灵活的通信机制。RMI是Java平台内建的一种远程对象调用技术,它允许一个Java对象调用另一...

    基于JAVA的socket编程 RMI

    基于java的socket及RMI编程,东北大学 程序实践三的成果

    web服务器 RMI meeting

    在Web服务器与RMI结合的场景中,Socket可以作为底层通信机制,使得Web服务器能够通过RMI与远程服务进行通信。 在"web服务器 RMI meeting sokect"的会议中,可能的讨论点包括: 1. 如何在Web服务器上实现RMI服务,...

    分布式程序java 实验名称 基于Java RMI的C/S编程实验

    在这个基于Java的C/S(客户端/服务器)编程实验中,我们将探讨两种不同的实现方式:基于Socket的通信和基于Java Remote Method Invocation (RMI) 的通信。 首先,我们来看基于Socket的C/S编程。Socket是网络编程的...

    东北大学软件学院程序实践socket+rmi源代码

    【标题】"东北大学软件学院程序实践:socket+rmi源代码" 在计算机科学与信息技术领域,Socket编程和RMI(Remote Method Invocation,远程方法调用)是两种重要的网络通信技术。东北大学软件学院的这个实践项目结合...

    java rmi java rmi

    3. **传输层**:最底层处理实际的数据传输,通常使用Java的Socket API来实现。 ### RMI编程 #### 定义远程接口 在实现RMI之前,首先需要定义一个远程接口。这个接口必须继承自`java.rmi.Remote`接口,并且声明...

    JAVA RMI 传输 SSL加密

    1. **注册基于SSL的RMI Socket Factories**: - 在服务器(Server)和客户端(Client)上,我们需要创建并导出使用自定义的SSL套接字工厂的Registry实例。这可以通过在创建RMI Registry时指定`...

    RMI会议管理系统代码

    Socket编程为RMI提供了网络连接的基础,使得客户端和服务端能够进行双向通信。同时,由于RMI是基于Java的,因此它还利用了Java的序列化机制,将对象转化为字节流以便在网络上传输。 **分布式特性**:RMI使得会议...

    java RMI技术实现的网络聊天室

    10. **网络编程**:RMI涉及TCP/IP网络编程,客户端和服务器之间通过Socket进行通信。理解套接字编程的基本原理有助于深入理解RMI的工作机制。 以上是关于“java RMI技术实现的网络聊天室”的主要知识点。通过这个...

    java_rmi漏洞利用工具

    本项目使用socket直接发送数据包来攻击rmi,通过反序列化攻击rmi,双击直接运行,对1099端口的rmi服务直接进行漏洞检测。

    rmi.rar_RMI chat

    在本案例中,"rmi.rar_RMI chat"是一个基于RMI实现的群聊程序,相较于传统的基于Socket的聊天系统,RMI提供了更为简洁和高效的解决方案。 首先,让我们深入理解RMI的工作原理。RMI的核心思想是客户端和服务器端通过...

    对 RMI 的简单理解

    - **性能**:由于序列化和反序列化的开销,RMI的性能可能不如其他更底层的通信协议(如Socket)。 - **调试困难**:由于涉及网络通信和远程异常,调试RMI应用程序可能比较复杂。 - **单点故障**:RMI注册表是单点...

    RMI聊天室-Java实现

    5. **I/O流**:Java的Socket编程是RMI的基础,它提供了一种在网络间交换数据的途径。聊天室的实现可能涉及ServerSocket和Socket,以及InputStream和OutputStream,用于读写聊天数据。 6. **异常处理**:由于网络...

    JAVA RMI 调查报告

    RMI克服了传统TCP/IP编程,如Socket编程的繁琐和易错性。使用RMI,开发者可以像调用本地方法一样调用远程服务器上的方法,简化了分布式操作的实现。RMI的核心特点是: 1. 客户端可以直接调用远程服务器上的方法,...

    java进程间通讯机制代码----RMI、共享内存、Socket、管道

    java进程间通讯机制代码----RMI、共享内存、Socket、管道,等方式,每种方法我都讲了原理和例子程序,很有参考意义。在网上很难找到的。

    Java RMI.pdf

    threading, the RMI registry, sockets and socket factories, activation, dynamic class downloading, HTTP tunneling, distributed garbage collection, JNDI, and CORBA. In short, a treasure trove of ...

    (转)通用JAVA RMI服务器框架

    2. **远程实现类**:实现了远程接口的类,需要继承`UnicastRemoteObject`或使用`RMIServerSocketFactory`自定义socket工厂。例如: ```java public class MyRemoteImpl extends UnicastRemoteObject implements ...

    华南理工大学分布式实验 RMI实验以及实验报告

    学生还可以进一步探索RMI与其他技术的结合,如Java的多线程、Socket编程,或者更现代的分布式框架如Hadoop、Spark等。理解RMI为理解分布式计算的其他复杂机制奠定了基础。 7. **总结** 华南理工大学的RMI实验为...

    liaotianshi.rar_RMI聊天室_java 网络_rmi _rmi 聊天_网络聊天室

    实现RMI聊天室首先需要对Java的网络编程有基本理解,包括Socket编程和ServerSocket类的使用。服务器端通过ServerSocket监听客户端连接,客户端使用Socket建立连接,通过输入/输出流进行数据交换。在网络聊天室中,...

Global site tag (gtag.js) - Google Analytics