socket通信原理
Socket指套接字,就是對網絡中不同主機上的應用進程之間進行雙向通信的端點的抽象。一個套接字就是網絡上進程通信的一端,提供了應用層進程利用網絡協議交換數據的機制。從所處的地位來講,套接字上聯應用進程,下聯網絡協議棧,是應用程序通過網絡協議進行通信的接口,是應用程序與網絡協議棧進行交互的接口。
Socket保證了不同計算機之間的通信,也就是網絡通信。對於網站,通信模型是服務器與客戶端之間的通信。兩端都建立了一個Socket對象,然後通過Socket對象對數據進行傳輸。通常服務器處於一個無限循環,等待客戶端的連接。
套接字是通信的基石,是支持TCP/IP協議的路通信的基本操作單元。可以將套接字看作不同主機間的進程進行雙間通信的端點,它構成了單個主機內及整個網絡間的編程界面。套接字存在於通信域中,通信域是爲了處理一般的線程通過套接字通信而引進的一種抽象概念。套接字通常和同一個域中的套接字交換數據,各種進程使用這個相同的域互相之間用Internet協議簇來進行通信,套接字還有以下類型:
1、流套接字
流套接字用於提供面向連接、可靠的數據傳輸服務。該服務將保證數據能夠實現無差錯、無重複送,並按順序接收。流套接字之所以能夠實現可靠的數據服務,原因在於其使用了傳輸控制協議,即TCP協議。
2、數據報套接字
數據報套接字提供一種無連接的服務。該服務並不能保證數據傳輸的可靠性,數據有可能在傳輸過程中丟失或出現數據重複,且無法保證順序地接收到數據。數據報套接字使用UDP協議進行數據的傳輸。由於數據報套接字不能保證數據傳輸的可靠性,對於有可能出現的數據丟失情況,需要在程序中做相應的處理 。
3、原始套接字
原始套接字與標準套接字(標準套接字指的是前面介紹的流套接字和數據報套接字)的區別在於:原始套接字可以讀寫內核沒有處理的IP數據包,而流套接字只能讀取TCP協議的數據,數據報套接字只能讀取UDP協議的數據。因此,如果要訪問其他協議發送的數據必須使用原始套接。
-
生薑和醋的妙用有些什麼
生薑和白醋是廚房裏的常見品,經常做飯的人都知道,在炒菜時它們是很難混到一起使用。但是,在養生保健領域種,將兩者組合使用卻能夠給人們帶來意想不到的效果。這是由於生薑和白醋都是效果非常突出的養生食物,對調養身體有非常重要的作用。那麼它們組合使用的作用與功...
-
有教無類是什麼意思
有教無類是指不管什麼人都可以受到教育,不因爲貧富、貴賤、2113智愚、善惡等原因把一些人排除在教育對象之外。有教無類,從根本上決定了儒家學說的本質。有教無類的涵義不是某些特定階層、特定集團、特定羣體的人可教,而是人人可教,人人可教即人人可學,人人可學即大...
-
微博暱稱怎麼纔算是正確格式
1、沒有什麼太多格式要求。新浪微博的支持4-30個字符,中英文、數字,“_”,而漢字是2個字符,英文是一個字符,暱稱是不宜過長或者包含其他的符號。2、如果喜歡的名字(暱稱)已被人佔用,可以在此名字後加上數字、符號以區別,這樣暱稱就能用了。新浪微博名字必須是唯一的,也...
-
加油經典語錄
1、有本事任性的人,也會有本事堅強。2、人生的意義不在於拿一手好牌,而在於打好一手壞牌。3、你若決定燦爛、倒影也會美的讓人驚歎!4、持續不斷的勞動,是人生的鐵律,也是藝術的鐵律。5、激動,只是一顆流星,毅力,纔是成功之永恆的太陽。6、能力不在於你擁有什麼,而在於你...