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中的“协议”来读,这样一条消息的过程就完成了。

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值