Java编程那些事儿107——网络协议观念
当前位置:以往代写 > JAVA 教程 >Java编程那些事儿107——网络协议观念
2019-06-14

Java编程那些事儿107——网络协议观念

Java编程那些事儿107——网络协议观念

副标题#e#

13.2.5 网络协议

对付需要从事网络编程的措施员来说,网络协议是一个需要深刻领略的观念。那么什么是网络协议呢?

网络协议是指对付网络中传输的数据名目标划定。对付网络编程初学者来说,没有须要深入相识TCP/IP协议簇,所以对付初学者来说去读大部头的《TCP/IP协议》也不是一件很符合的工作,因为深入相识TCP/IP协议是网络编程提高阶段,也是深入网络编程底层时才需要做的工作。

对付一般的网络编程来说,更多的是体贴网络上传输的逻辑数据内容,也就是更多的是应用层上的网络协议,所今后续的内容均以实际应用的数据为基本来先容网络协议的观念。

那么什么是网络协议呢,下面看一个简朴的例子。春节晚会上“小沈阳”和赵本山相助的小品《不差钱》中,小沈阳和赵本山之间就设计了一个协议,协议的内容为:

假如点的菜价格较量贵是,就说没有。

凭据该协议的划定,就有了下面的对话:

赵本山:4斤的龙虾

小沈阳:(颠末判定,得出价值较量高),没有

赵本山:鲍鱼

小沈阳:(颠末判定,得出价值较量高),没有

这就是一种两边告竣的一种协议约定,其实这种约定的实质和网络协议的实质是一样的。网络协议的实质也是客户端措施和处事器端措施对付数据的一种约定,只是由于以计较机为基本,所以更多的是利用数字来代表内容,这样就显得较量抽象一些。

下面再举一个简朴的例子,先容一些基本的网络协议设计的常识。譬喻需要设计一个简朴的网络措施:网络计较器。也就是在客户端输入需要计较的数字和运算符,在处事器端实现计较,并将计较的功效反馈给客户端。在这个例子中,就需要约定两个数据名目:客户端发送给处事器端的数据名目,以及处事器端反馈给客户端的数据名目。

大概你以为这个较量简朴,譬喻客户端输入的数字依次是12和432,输入的运算符是加号,大概最容易想到的数据名目是形成字符串“12+432”,这样名目简直较量容易阅读,可是处事器端在举办计较时,逻辑就较量贫苦,因为需要首先拆分该字符串,然后才气举办计较,所以可用的数据名目就有了一下几种:

“12,432,+”  名目为:第一个数字,第二个数字,运算符

“12,+,432”  名目为:第一个数字,运算符,第二个数字

其实以上两种数据名目很靠近,较量容易阅读,在处事器端收到该数据名目今后,利用“,”为脱离符支解字符串即可。

假设对付运算符再举办一次约定,譬喻约定命字0代表+,1代表减,2代表乘,3代表除,整体名目遵循以上第一种名目,则上面的数字出产的协议数据为:

“12,432,0”

这就是一种根基的发送的协议约定了。

别的一个需要设计的协议名目就是处事器端反馈的数据名目,其实处事器端主要反馈计较功效,可是在实际接管数据时,有大概存在名目错误的环境,这样就需要简朴的设计一下处事器端反馈的数据名目了。譬喻划定,假如发送的数据名目正确,则反馈功效,不然反馈字符串“错误”。这样就有了以下的数据名目:

客户端:“1,111,1”  处事器端:”-110”

客户端:“123,23,0” 处事器端:“146”

客户端:“1,2,5”   处事器端:“错误”

这样就设计出了一种最最根基的网络协议名目,从该示例中可以看出,网络协议就是一种名目上的约定,可以按照逻辑的需要约定出各类数据名目,在举办设计时一般遵循“简朴、通用、容易理会”的原则举办。


#p#副标题#e#

而对付巨大的网络措施来说,需要传输的数据种类和数据量都较量大,这样只需要依次设计出每种环境下的数据名目即可,譬喻QQ措施,在该措施中需要举办传输的网络数据种类许多,那么在设计时就可以遵循:登录名目、注册名目、发送动静名目等等,一一举办设计即可。所以对付巨大的网络措施来说,只是增加了更多的呼吁名目,在实际设计时的事情量增加不是太大。

不管怎么说,在网络编程中,对付同一个网络措施来说,一般城市涉及到两个网络协议名目:客户端发送数据名目和处事器端反馈数据名目,在实际设计时,需要一一对应。这就是最根基的网络协议的常识。

网络协议设计完成今后,在举办网络编程时,就需要按照设计好的协议名目,在措施中举办对应的编码了,客户端措施和处事器端措施需要举办协议处理惩罚的代码别离如下。

客户端措施需要完成的处理惩罚为:

1、客户端发送协议名目标生成

2、处事器端反馈数据名目标理会

处事器端措施需要完成的处理惩罚为:

1、处事器端反馈协议名目标生成

2、客户端发送协议名目标理会

#p#分页标题#e#

这里的生成是指将计较好的数据,转换陈划定的数据名目,这里的理会指,从反馈的数据名目中拆分出需要的数据。在举办对应的代码编写时,严格遵循协议约定即可。

所以,对付措施员来说,在举办网络措施编写时,需要首先按照逻辑的需要设计网络协议名目,然后遵循协议名目约定举办协议生成息争析代码的编写,最后利用网络编程技能实现整个网络编程的成果。

由于各类网络措施利用差异的协议名目,所以差异网络措施的客户端之间无法通用。

而对付常见协议的名目,譬喻HTTP(Hyper Text Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议),SMTP(Simple Mail Transfer Protocol,简朴邮件传输协议)等等,都有通用的划定,详细可以查阅相关的RFC文档。

最后,对付一种网络措施来说,网络协议名目是该措施最焦点的技能奥秘,因为一旦协议名目泄漏,则任何一小我私家都可以按照该名目举办客户端的编写,这样将影响处事器端的实现,也容易呈现一些其它的影响。

13.2.6小结

关于网络编程根基的技能就先容这么多,该部门先容了网络编程的基本常识,以及Java语言对付网络编程的支持,网络编程的步调等,并具体先容了TCP方法网络编程和UDP方法网络编程在Java语言中的实现。

网络协议也是网络措施的焦点,所以在实际开始举办网络编程时,设计一个精采的协议名目也是必需举办的事情。

    关键字:

在线提交作业