成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

網絡編程程序員看網絡協議

網絡 網絡管理
對于需要從事網絡編程的程序員來說,網絡協議是一個需要深刻理解的概念。那么什么是網絡協議呢?本文就來為大家解答這個問題。

網絡協議是指對于網絡中傳輸的數據格式的規定。對于網絡編程初學者來說,沒有必要深入了解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” 服務器端:“錯誤”

這樣就設計出了一種最最基本的網絡協議格式,從該示例中可以看出,網絡協議就是一種格式上的約定,可以根據邏輯的需要約定出各種數據格式,在進行設計時一般遵循“簡單、通用、容易解析”的原則進行。

而對于復雜的網絡程序來說,需要傳輸的數據種類和數據量都比較大,這樣只需要依次設計出每種情況下的數據格式即可,例如QQ程序,在該程序中需要進行傳輸的網絡數據種類很多,那么在設計時就可以遵循:登錄格式、注冊格式、發送消息格式等等,一一進行設計即可。所以對于復雜的網絡程序來說,只是增加了更多的命令格式,在實際設計時的工作量增加不是太大。

不管怎么說,在網絡編程中,對于同一個網絡程序來說,一般都會涉及到兩個網絡協議格式:客戶端發送數據格式和服務器端反饋數據格式,在實際設計時,需要一一對應。這就是最基本的網絡協議的知識。

網絡協議設計完成以后,在進行網絡編程時,就需要根據設計好的協議格式,在程序中進行對應的編碼了,客戶端程序和服務器端程序需要進行協議處理的代碼分別如下。

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

1、 客戶端發送協議格式的生成

2、 服務器端反饋數據格式的解析

服務器端程序需要完成的處理為:

1、 服務器端反饋協議格式的生成

2、 客戶端發送協議格式的解析

這里的生成是指將計算好的數據,轉換成規定的數據格式,這里的解析指,從反饋的數據格式中拆分出需要的數據。在進行對應的代碼編寫時,嚴格遵循協議約定即可。

所以,對于程序員來說,在進行網絡程序編寫時,需要首先根據邏輯的需要設計網絡協議格式,然后遵循協議格式約定進行協議生成和解析代碼的編寫,最后使用網絡編程技術實現整個網絡編程的功能。

由于各種網絡程序使用不同的協議格式,所以不同網絡程序的客戶端之間無法通用。

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

網絡協議格式對于一種網絡程序來說,是該程序最核心的技術秘密,因為一旦協議格式泄漏,則任何一個人都可以根據該格式進行客戶端的編寫,這樣將影響服務器端的實現,也容易出現一些其它的影響。

【編輯推薦】

  1. Linux網絡協議棧的概念
  2. 你知道Linux網絡協議棧嗎?
  3. 解析FCoE和iSCSI兩個網絡協議的戰爭(1)
  4. SimpliciTI網絡協議的無線數據采集系統設計(1)
  5. 網絡協議基礎:NAT地址轉換配置
責任編輯:佚名 來源: 比特網
相關推薦

2010-03-22 09:32:42

自學編程

2015-08-20 14:34:25

程序員java基礎網絡編程

2013-12-30 10:08:13

2016-04-28 11:17:33

互動出版網

2018-01-09 20:29:15

程序員日本程序員中國程序員

2011-05-10 13:37:53

程序員

2012-08-30 10:05:40

編程編程語言程序員

2013-11-14 10:05:25

程序員職業轉型

2012-09-20 09:19:30

程序員非程序西方程序員

2012-09-19 09:21:59

2012-11-12 09:35:24

開發工具程序員IE6

2012-06-15 09:54:58

程序員編程開發

2014-06-13 11:03:19

程序員

2012-09-24 14:03:58

C#網絡協議C

2011-11-11 16:20:22

編程

2019-09-18 20:07:06

AndroidTCP協議

2015-10-26 14:21:58

程序員面試編程面試

2021-04-27 15:28:32

程序員技能開發者

2022-02-15 10:15:13

Web網絡程序員

2017-09-08 13:04:39

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品一区二区三区在线观看 | 亚洲欧美精品 | 福利av在线 | 久久久久国产视频 | 免费成人高清在线视频 | 亚洲精品一区二区在线观看 | 在线视频一区二区 | 成年人在线观看视频 | 欧洲一级毛片 | 黑人巨大精品欧美一区二区免费 | 亚洲日本国产 | 中文字幕av在线播放 | 午夜精品一区二区三区免费视频 | 亚洲美乳中文字幕 | 不卡在线视频 | 国产羞羞视频在线观看 | 欧美精品欧美精品系列 | 午夜午夜精品一区二区三区文 | 亚洲综合在线视频 | 中文字幕亚洲国产 | 国产精品视频二区三区 | 久久久99国产精品免费 | 福利视频三区 | 最近日韩中文字幕 | 欧美中文一区 | 日本午夜一区二区三区 | 无码日韩精品一区二区免费 | 欧美日韩免费视频 | 欧美精品一区二区三区在线播放 | 亚洲品质自拍视频 | 久久91av| av av在线| www成人啪啪18 | 久久久久中文字幕 | 国产精品久久久久久久岛一牛影视 | 中文字幕一区二区三区在线观看 | 在线观看免费毛片 | 日韩成人免费视频 | 91久久网站 | av毛片 | 岛国av免费看 |