自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

網(wǎng)絡(luò)編程程序員看網(wǎng)絡(luò)協(xié)議

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
對(duì)于需要從事網(wǎng)絡(luò)編程的程序員來說,網(wǎng)絡(luò)協(xié)議是一個(gè)需要深刻理解的概念。那么什么是網(wǎng)絡(luò)協(xié)議呢?本文就來為大家解答這個(gè)問題。

網(wǎng)絡(luò)協(xié)議是指對(duì)于網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)格式的規(guī)定。對(duì)于網(wǎng)絡(luò)編程初學(xué)者來說,沒有必要深入了解TCP/IP協(xié)議簇,所以對(duì)于初學(xué)者來說去讀大部頭的《TCP/IP協(xié)議》也不是一件很合適的事情,因?yàn)樯钊肓私釺CP/IP協(xié)議是網(wǎng)絡(luò)編程提高階段,也是深入網(wǎng)絡(luò)編程底層時(shí)才需要做的事情。

對(duì)于一般的網(wǎng)絡(luò)編程來說,更多的是關(guān)心網(wǎng)絡(luò)上傳輸?shù)倪壿嫈?shù)據(jù)內(nèi)容,也就是更多的是應(yīng)用層上的網(wǎng)絡(luò)協(xié)議,所以后續(xù)的內(nèi)容均以實(shí)際應(yīng)用的數(shù)據(jù)為基礎(chǔ)來介紹網(wǎng)絡(luò)協(xié)議的概念。

那么什么是網(wǎng)絡(luò)協(xié)議呢,下面看一個(gè)簡(jiǎn)單的例子。春節(jié)晚會(huì)上“小沈陽”和趙本山合作的小品《不差錢》中,小沈陽和趙本山之間就設(shè)計(jì)了一個(gè)協(xié)議,協(xié)議的內(nèi)容為:

如果點(diǎn)的菜價(jià)錢比較貴是,就說沒有。

按照該協(xié)議的規(guī)定,就有了下面的對(duì)話:

趙本山:4斤的龍蝦

小沈陽:(經(jīng)過判斷,得出價(jià)格比較高),沒有

趙本山:鮑魚

小沈陽:(經(jīng)過判斷,得出價(jià)格比較高),沒有

這就是一種雙方達(dá)成的一種協(xié)議約定,其實(shí)這種約定的實(shí)質(zhì)和網(wǎng)絡(luò)協(xié)議的實(shí)質(zhì)是一樣的。網(wǎng)絡(luò)協(xié)議的實(shí)質(zhì)也是客戶端程序和服務(wù)器端程序?qū)τ跀?shù)據(jù)的一種約定,只是由于以計(jì)算機(jī)為基礎(chǔ),所以更多的是使用數(shù)字來代表內(nèi)容,這樣就顯得比較抽象一些。

下面再舉一個(gè)簡(jiǎn)單的例子,介紹一些基礎(chǔ)的網(wǎng)絡(luò)協(xié)議設(shè)計(jì)的知識(shí)。例如需要設(shè)計(jì)一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)程序:網(wǎng)絡(luò)計(jì)算器。也就是在客戶端輸入需要計(jì)算的數(shù)字和運(yùn)算符,在服務(wù)器端實(shí)現(xiàn)計(jì)算,并將計(jì)算的結(jié)果反饋給客戶端。在這個(gè)例子中,就需要約定兩個(gè)數(shù)據(jù)格式:客戶端發(fā)送給服務(wù)器端的數(shù)據(jù)格式,以及服務(wù)器端反饋給客戶端的數(shù)據(jù)格式。

可能你覺得這個(gè)比較簡(jiǎn)單,例如客戶端輸入的數(shù)字依次是12和432,輸入的運(yùn)算符是加號(hào),可能最容易想到的數(shù)據(jù)格式是形成字符串“12+432”,這樣格式的確比較容易閱讀,但是服務(wù)器端在進(jìn)行計(jì)算時(shí),邏輯就比較麻煩,因?yàn)樾枰紫炔鸱衷撟址?,然后才能進(jìn)行計(jì)算,所以可用的數(shù)據(jù)格式就有了一下幾種:

“12,432,+” 格式為:第一個(gè)數(shù)字,第二個(gè)數(shù)字,運(yùn)算符

“12,+,432” 格式為:第一個(gè)數(shù)字,運(yùn)算符,第二個(gè)數(shù)字

其實(shí)以上兩種數(shù)據(jù)格式很接近,比較容易閱讀,在服務(wù)器端收到該數(shù)據(jù)格式以后,使用“,”為分隔符分割字符串即可。

假設(shè)對(duì)于運(yùn)算符再進(jìn)行一次約定,例如約定數(shù)字0代表+,1代表減,2代表乘,3代表除,整體格式遵循以上第一種格式,則上面的數(shù)字生產(chǎn)的協(xié)議數(shù)據(jù)為:

“12,432,0”

這就是一種基本的發(fā)送的協(xié)議約定了。

另外一個(gè)需要設(shè)計(jì)的協(xié)議格式就是服務(wù)器端反饋的數(shù)據(jù)格式,其實(shí)服務(wù)器端主要反饋計(jì)算結(jié)果,但是在實(shí)際接受數(shù)據(jù)時(shí),有可能存在格式錯(cuò)誤的情況,這樣就需要簡(jiǎn)單的設(shè)計(jì)一下服務(wù)器端反饋的數(shù)據(jù)格式了。例如規(guī)定,如果發(fā)送的數(shù)據(jù)格式正確,則反饋結(jié)果,否則反饋?zhàn)址?ldquo;錯(cuò)誤”。這樣就有了以下的數(shù)據(jù)格式:

客戶端:“1,111,1” 服務(wù)器端:”-110”

客戶端:“123,23,0” 服務(wù)器端:“146”

客戶端:“1,2,5” 服務(wù)器端:“錯(cuò)誤”

這樣就設(shè)計(jì)出了一種最最基本的網(wǎng)絡(luò)協(xié)議格式,從該示例中可以看出,網(wǎng)絡(luò)協(xié)議就是一種格式上的約定,可以根據(jù)邏輯的需要約定出各種數(shù)據(jù)格式,在進(jìn)行設(shè)計(jì)時(shí)一般遵循“簡(jiǎn)單、通用、容易解析”的原則進(jìn)行。

而對(duì)于復(fù)雜的網(wǎng)絡(luò)程序來說,需要傳輸?shù)臄?shù)據(jù)種類和數(shù)據(jù)量都比較大,這樣只需要依次設(shè)計(jì)出每種情況下的數(shù)據(jù)格式即可,例如QQ程序,在該程序中需要進(jìn)行傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)種類很多,那么在設(shè)計(jì)時(shí)就可以遵循:登錄格式、注冊(cè)格式、發(fā)送消息格式等等,一一進(jìn)行設(shè)計(jì)即可。所以對(duì)于復(fù)雜的網(wǎng)絡(luò)程序來說,只是增加了更多的命令格式,在實(shí)際設(shè)計(jì)時(shí)的工作量增加不是太大。

不管怎么說,在網(wǎng)絡(luò)編程中,對(duì)于同一個(gè)網(wǎng)絡(luò)程序來說,一般都會(huì)涉及到兩個(gè)網(wǎng)絡(luò)協(xié)議格式:客戶端發(fā)送數(shù)據(jù)格式和服務(wù)器端反饋數(shù)據(jù)格式,在實(shí)際設(shè)計(jì)時(shí),需要一一對(duì)應(yīng)。這就是最基本的網(wǎng)絡(luò)協(xié)議的知識(shí)。

網(wǎng)絡(luò)協(xié)議設(shè)計(jì)完成以后,在進(jìn)行網(wǎng)絡(luò)編程時(shí),就需要根據(jù)設(shè)計(jì)好的協(xié)議格式,在程序中進(jìn)行對(duì)應(yīng)的編碼了,客戶端程序和服務(wù)器端程序需要進(jìn)行協(xié)議處理的代碼分別如下。

客戶端程序需要完成的處理為:

1、 客戶端發(fā)送協(xié)議格式的生成

2、 服務(wù)器端反饋數(shù)據(jù)格式的解析

服務(wù)器端程序需要完成的處理為:

1、 服務(wù)器端反饋協(xié)議格式的生成

2、 客戶端發(fā)送協(xié)議格式的解析

這里的生成是指將計(jì)算好的數(shù)據(jù),轉(zhuǎn)換成規(guī)定的數(shù)據(jù)格式,這里的解析指,從反饋的數(shù)據(jù)格式中拆分出需要的數(shù)據(jù)。在進(jìn)行對(duì)應(yīng)的代碼編寫時(shí),嚴(yán)格遵循協(xié)議約定即可。

所以,對(duì)于程序員來說,在進(jìn)行網(wǎng)絡(luò)程序編寫時(shí),需要首先根據(jù)邏輯的需要設(shè)計(jì)網(wǎng)絡(luò)協(xié)議格式,然后遵循協(xié)議格式約定進(jìn)行協(xié)議生成和解析代碼的編寫,最后使用網(wǎng)絡(luò)編程技術(shù)實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)編程的功能。

由于各種網(wǎng)絡(luò)程序使用不同的協(xié)議格式,所以不同網(wǎng)絡(luò)程序的客戶端之間無法通用。

而對(duì)于常見協(xié)議的格式,例如HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議)、FTP(File Transfer Protocol,文件傳輸協(xié)議),SMTP(Simple Mail Transfer Protocol,簡(jiǎn)單郵件傳輸協(xié)議)等等,都有通用的規(guī)定,具體可以查閱相關(guān)的RFC文檔。

網(wǎng)絡(luò)協(xié)議格式對(duì)于一種網(wǎng)絡(luò)程序來說,是該程序最核心的技術(shù)秘密,因?yàn)橐坏﹨f(xié)議格式泄漏,則任何一個(gè)人都可以根據(jù)該格式進(jìn)行客戶端的編寫,這樣將影響服務(wù)器端的實(shí)現(xiàn),也容易出現(xiàn)一些其它的影響。

【編輯推薦】

  1. Linux網(wǎng)絡(luò)協(xié)議棧的概念
  2. 你知道Linux網(wǎng)絡(luò)協(xié)議棧嗎?
  3. 解析FCoE和iSCSI兩個(gè)網(wǎng)絡(luò)協(xié)議的戰(zhàn)爭(zhēng)(1)
  4. SimpliciTI網(wǎng)絡(luò)協(xié)議的無線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)(1)
  5. 網(wǎng)絡(luò)協(xié)議基礎(chǔ):NAT地址轉(zhuǎn)換配置
責(zé)任編輯:佚名 來源: 比特網(wǎng)
相關(guān)推薦

2015-08-20 14:34:25

程序員java基礎(chǔ)網(wǎng)絡(luò)編程

2010-03-22 09:32:42

自學(xué)編程

2013-12-30 10:08:13

2018-01-09 20:29:15

程序員日本程序員中國(guó)程序員

2016-04-28 11:17:33

互動(dòng)出版網(wǎng)

2011-05-10 13:37:53

程序員

2012-09-19 09:21:59

2012-09-20 09:19:30

程序員非程序西方程序員

2012-08-30 10:05:40

編程編程語言程序員

2013-11-14 10:05:25

程序員職業(yè)轉(zhuǎn)型

2012-11-12 09:35:24

開發(fā)工具程序員IE6

2012-06-15 09:54:58

程序員編程開發(fā)

2014-06-13 11:03:19

程序員

2011-11-11 16:20:22

編程

2015-10-26 14:21:58

程序員面試編程面試

2012-09-24 14:03:58

C#網(wǎng)絡(luò)協(xié)議C

2019-09-18 20:07:06

AndroidTCP協(xié)議

2017-09-08 13:04:39

2015-03-10 14:28:46

程序員編程知識(shí)經(jīng)驗(yàn)總結(jié)

2023-11-03 07:46:54

CodeGeeX編程助手
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)