`

java通信总结之“协议”

 
阅读更多

 

java通信总结之“协议”

 

人之所以能正常的交流,因为我们有思想,知道一句话,一个表情,一个动作能代表什么意思,然而机器不同,如果说思想是一个人的灵魂,那么不变与永恒就是计算机的精髓,正因为计算机能按照指令不变的执行同一个动作,我们才能按照一定的逻辑编码得到我们想要的结果。网络通信就是如此,如果我们给对方发一条消息(消息不仅仅代表String,也可能是图片,文件,或者表情,震动,大家可以联想一下QQ的各种功能),我们怎么让和我们通信的对方“读懂”我们的“意思”呢?我的理解是怎么发就怎么读,那就引出了“协议”这个概念。

下面我举一个我自己制定的一个简单的“协议”,大家就可以理解协议这个概念了。

 

在此我主要谈谈对于“协议”的感受,客户机与服务器之间的连接我就不写了

 

在此我只发String和窗体抖动两种消息

 

1,实现客户机1给客户机2发一条String的过程

 

客户机1发送给服务器:  “一句话”+要说的话

服务器转发给客户机2 “一句话”+要说的话

客户机2读消息: 先读一个String  s,

If(s.equals(“一句话”)),那么客户机2就知道要接收到的是一句话,那么就接着在读一个String,这个String 就是客户机1说的话。

 

2,实现客户机1给客户机2发一个image的过程

 

客户机1发送给服务器:  shake

服务器转发给客户机2  shake

客户机2读消息: 先读一个String  s,

If(s.equals(shake)),那么客户机2就知道要接收到的是一个“shake”,那么就接着调用实现聊天窗体实现抖动的方法。

 

 

当然,在实际过程中协议不可能这么简单,比如聊天双方还要知道彼此是谁,还要查询对方信息,还要实现登陆,注册等功能,但是原理是一样的,其中包括这几个步骤:

 

1,客户机1先把信息发给服务器(此处发送肯定有一些规则,即协议)

 

 

2,服务器开始读客户机1发的消息(客户机1怎么发的,服务器就怎么读,也就是说按照步骤1中的“协议”来读消息)

 

 

3,服务器把读到的消息转发给客户机2,这其中可能包含了一些对信息的处理,比如服务器发送给客户机2的消息中还包含了客户机1的姓名,客户机1发送此条消息的时间,总之,具体的过程使我们自己实现的,也就是说我们自己制定的“协议”


4,客户机2开始读取服务器转发的消息,这个消息经过了服务器的处理,即步骤三中的处理,我们读的时候也要按照步骤3中的“协议”来读,这样一条消息的过程就完成了。

 

总之,我的感受是通信协议的核心就是一句话“怎么发,就怎么读”,计算机是严格的遵守“无规矩不成方圆“这句古话的。

分享到:
评论

相关推荐

    北斗2.1通信协议

    北斗2.0通信协议自发布以来,在实际应用中表现出良好的性能和稳定性,但也存在一些局限性和不足之处。为了进一步提升北斗系统的性能,满足更广泛的应用需求,中国北斗卫星导航系统管理办公室组织相关专家和技术人员...

    用Java实现基于TCPIP协议的网络通信程序

    ### 用Java实现基于TCP/IP协议的网络通信程序 #### 概述 随着互联网技术的快速发展,现代程序设计越来越依赖于网络通信能力。Java作为一种广泛使用的编程语言,提供了丰富的API来支持网络编程,使得开发者无需深入...

    Java通信方式总结例程

    以下是对Java通信方式的详细总结: 1. **远程过程调用(RPC,Remote Procedure Call)** - RPC允许程序调用另一个计算机上的方法,就像它是一个本地方法一样。在Java中,常见的RPC框架有Hessian、Dubbo、gRPC等。 ...

    中国联通sgip协议java代码

    总结来说,中国联通SGIP协议的Java实现涉及到网络编程、数据编码解码、协议解析等多个技术领域,开发者需要对TCP/IP有深入理解,同时具备良好的编程和问题解决能力。通过阅读提供的源码,可以学习到具体的实现细节和...

    java socket使用加密协议传输对象

    在Java中,实现这种加密通信的方式之一就是使用SSLSocket。 #### SSLSocket的使用 在Java中,SSLSocket是Socket的一个子类,专门用于支持SSL/TLS加密的网络通信。下面,我们将详细介绍如何在Java Socket中使用SSL...

    java 技术总结.--java 技术

    Socket编程是Java进行网络通信的主要方式,支持TCP/IP协议。 六、多线程 Java内置了对多线程的支持,通过Thread类和Runnable接口可以创建并管理多个执行线程,实现并发处理,提升程序性能。 七、Java虚拟机(JVM)...

    java使用udp协议和硬件进行数据收发处理

    总结来说,Java中的UDP网络编程涉及到创建和管理`DatagramSocket`,构造和解析`DatagramPacket`,以及处理可能的异常情况。开发者需要根据实际需求选择合适的方式实现数据的高效传输,同时注意处理可能出现的数据...

    Java模块与C网关通信

    总结,Java模块与C网关通信涉及到多种技术和策略,包括JNI、网络通信、消息队列、数据序列化等。实现这种跨语言通信需要对不同语言的特性和通信机制有深入理解,同时进行充分的测试以确保系统的稳定性和可靠性。

    java源码 JAVA串口通信源码 2018127

    总结来说,Java串口通信涉及的知识点包括Java编程、串行通信协议、RXTX库的使用以及事件驱动编程。`SerialPortDemo-master`项目提供了一个实际操作的例子,你可以通过研究该项目的源码,理解并学习如何在Java中实现...

    flex与java通信的完整demo

    Flex与Java通信是Web开发中的一个重要技术组合,它允许用户在浏览器端利用Flash的富互联网应用(RIA)特性,通过ActionScript与服务器端的Java应用程序进行数据交互。本压缩包包含了一个完整的Flex与Java通信的示例...

    JAVA编写网络通信程序

    ### JAVA编写网络通信程序知识点详解 #### 一、Java中输入/输出流概念 Java中的输入/输出(I/O)流是实现数据读写的重要工具。流被分为输入流和输出流两大类,它们分别用于从数据源读取数据和向目的地写入数据。 ...

    modbusTCP协议java实现(带注释)

    请求消息的构建是ModbusTCP/IP协议的核心之一,代码示例如下: ```java for (i = 0; i ; i++) obuf[i] = 0; obuf[5] = 6; obuf[6] = (byte) unit; obuf[7] = 3; obuf[8] = (byte) (reg_no >> 8); obuf[9] = (byte)...

    java实现的tcpudp通信

    通过本次实验,我们不仅掌握了 Java 实现 TCP 和 UDP 通信的具体方法,还加深了对两种协议的理解。TCP 和 UDP 各有优势和局限性,选择哪种协议取决于具体的应用场景。在实际开发中,我们需要根据项目需求合理选择...

    Java与R语言通信总结

    Java与R语言通信是将两种不同的编程环境结合起来,以便在Java程序中利用R语言的强大统计分析和数据可视化能力。Rserve是实现这种通信的关键组件,它是一个C/S结构的服务,允许R与多种语言进行交互,包括Java。Rserve...

    java网络编程UDP协议通信

    通过java网络编程深入理解UDP协议通信,与TCP的区别等等 源码包每一行都有注释,在代码里面每一个类都有详细的注释来解释这个类的功能这个方法的功能,调用哪一个类的哪一个功能等等。 压缩包包含实验报告(实验原理...

    hj212-java实现.rar

    总结来说,"hj212-java实现.rar"提供了一个实用的HJT212协议Java实现,适用于环境监测领域的数据传输。借助Eclipse,开发者可以快速上手并深入理解协议的细节,从而提升在环保信息技术领域的专业能力。

    Java实现基于TCPIP协议的网络通信程序

    ### Java实现基于TCP/IP协议的网络通信程序 随着互联网技术的迅速发展,现代软件开发越来越多地涉及到了网络通信。在众多编程语言中,Java凭借其跨平台性、丰富的类库支持,尤其是对于网络编程的强大支持,成为了...

    电力系统698通信协议

    ### 电力系统698通信协议关键知识点解析 #### 一、概述 电力系统698通信协议(DL/T698.41-200X)是中国电力行业为实现电能信息采集与管理系统中主站与终端之间的数据交换而制定的一项标准。该标准详细规定了数据...

Global site tag (gtag.js) - Google Analytics