網際網路程式設計中,什麼是套接字?socket?

2021-08-04 19:59:26 字數 1065 閱讀 8362

socket 

['sɒkɪt] 

原意是 「插座」的意思。可以想象為將網際網路插入插座,接通了 

internet !!

套接字,是支援tcp/ip的網路通訊的基本操作單元,可以看做是不同主機之間的程序進行雙向通訊的端點,簡單的說就是通訊的兩方的一種約定,用套接字中的相關函式來完成通訊過程。

非常非常簡單的舉例說明下:socket=ip address+ tcp/udp + port。

流套接字(sock_stream):

流套接字用於提供面向連線、可靠的資料傳輸服務。該服務將保證資料能夠實現無差錯、無重**送,並按順序接收。流套接字之所以能夠實現可靠的資料服務,原因在於其使用了傳輸控制協議,即

tcp(the transmission control protocol)協議。

資料報套接字(sock_dgram):

資料報套接字提供了一種

無連線的服務。該服務並不能保證資料傳輸的可靠性,資料有可能在傳輸過程中丟失或出現資料重複,且無法保證順序地接收到資料。資料報套接字使用

udp(user datagram protocol)協議進行資料的傳輸。由於資料報套接字不能保證資料傳輸的可靠性,對於有可能出現的資料丟失情況,需要在程式中做相應的處理。

原始套接字(sock_raw):

原始套接字(socket_raw)允許對較低層次的協議直接訪問,比如ip、 icmp協議,它常用於檢驗新的協議實現,或者訪問現有服務中配置的新裝置,因為raw socket可以自如地控制windows下的多種協議,能夠對網路底層的傳輸機制進行控制,所以可以應用原始套接字來操縱網路層和傳輸層應用。比如,我們可以通過raw socket來接收發向本機的icmp、igmp協議包,或者接收tcp/ip棧不能夠處理的ip包,也可以用來傳送一些自定包頭或自定協議的ip包。網路監聽技術很大程度上依賴於socket_raw

原始套接字與標準套接字(標準套接字指的是前面介紹的流套接字和資料報套接字)的區別在於:原始套接字可以讀寫核心沒有處理的ip資料報,而流套接字只能讀取tcp協議的資料,資料報套接字只能讀取udp協議的資料。因此,如果要訪問其他協議傳送資料必須使用原始套接字。

什麼是網際網路?網際網路如何運作?

網際網路是乙個互聯計算機網路的全球系統,它使用網際網路協議套件 tcp ip 連線全球數十億臺裝置。它是乙個由數百萬個本地到全球範圍的私人 公共 學術 商業和 網路組成的網路中的網路,通過廣泛的電子 無線和光纖網路技術相互連線。網際網路承載廣泛的資訊資源和服務,例如互聯超文字文件和全球資訊網 www...

什麼是網際網路思維

今天和 箐一 一起吃飯,閒聊中,談到了在校招宣講會上某同學的提問 什麼是網際網路思維 我也曾經被學生問到過,怎麼回答的已經忘了,大意是使用者第一,快速迭代之類的,總之對自己的share不滿意。箐一 分享了她近期的感觸,覺得有理兒,且易懂,網際網路思維就是讓使用者參與進來 1 傳統的燒烤 餐廳烤好,使...

什麼是網際網路思維?

一 什麼是網際網路思維?這是乙個見仁見智的問題,沒有標準答案。網際網路思維就是使用者思維,準確的說是網際網路使用者思維,是人與人的連線,人與產品的連線,人與服務的連線,總的來看,核心就是人 是以人為中心,不斷將關係擴充套件開,形成乙個強大的關係網。通過建立的這層關係網,將有價值的東西相互傳遞,對網形...