當前位置:首頁 » 網路連接 » 計算機網路socket概念
擴展閱讀
手機看文章賺錢軟體 2024-05-18 20:13:03
計算機網路endtoend 2024-05-18 20:12:19

計算機網路socket概念

發布時間: 2022-09-20 02:49:11

A. socket的定義及其功能和用途

插座
chāzuò
[jack;outlet;receptacle;socket]
有一個或一個以上電路接線可插入的座,通過它可插入各種接線,便於與其他電路接通。
連接開關插座的方法
1、先用試電筆找出火線
2、關掉插座電源
3、將火線接入開關2個孔中的一個,再從另一個孔中接出一根2.5MM2絕緣線接入下面的插座3個孔中的L孔內接牢。
4、找出零線直接接入插座3個孔中的N孔內接牢。
5、找出地線直接接入插座3個孔中的E孔內接牢。
注意:零、地線不能接錯(一般面對插座左零右火上接地,否則插上用電設備,一開就會跳閘。
網路插座
電話插座
視頻、音頻插座
{GB2099.1-2008/IEC60884-1:2006,E3.1,MOD《家用和類似用途插頭插座 第1部分:通用要求》定義}:
( socket-outlet)插座:具有設計用於與插頭的插銷插合的插套,並且裝有用於連接軟纜的端子的電器附件。
(fixed socket-outlet)固定式插座:用於與固定布線連接的插座。
(portable socket-outlet)移動式插座:打算連接到軟纜上或與軟纜構成整體的、而且在與電源連接時易於從一地移到另一地的插座。
(multiple socket-outlet)多位插座:兩個或多個插座的組合體。
(socket-outlet for appliances)器具插座:打算裝在電器中的或固定到電器上的插座。
(rewirable plug or rewirable protable socket-outlet)可拆線插頭或可拆線移動式插座:結構上能更換軟纜的電器附件。
(non-rewirable plug or non-rewirable protable socket-outlet)不可拆線插頭或不可拆線移動式插座:由電器附件製造廠進行連接和組裝後,在結構上與軟纜形成一個整體的電器附件。
註:家庭牆面插座屬於固定式插座;排插(上圖)不帶電源線和插頭叫移動式插座,帶插頭形成整體就叫轉換器(adaptor)了
插座選購七看
1.看外觀開關的款式、顏色應該與室內的整體風格相吻合。例如居室內裝修的整體色調是淺色,則不應該選用黑色、棕色等深色的開關。
2.看手感
品質好的開關大多使用防彈膠等高級材料製成,防火性能、防潮性能、防撞擊性能等都較高,表面光滑,選購時應該考慮自己摸上去的手感,憑藉手感初步判定開關的材質,並詢問經銷商。一般來說,表面不太光滑、摸起來有薄、脆的感覺的產品,各項性能是不可信賴的。好的開關插座的面板要求無氣泡、無劃痕、無污跡。開關撥動的手感輕巧而不緊澀,插座的插孔需裝有保護門,插頭插拔應需要一定的力度並單腳無法插入。
3.看份量
購買開關時還應掂量一下單個開關的分量。因為只有開關里部的銅片厚,單個開關的重量才會大,而裡面的銅片是開關最關鍵的部分,如果是合金的或者薄的銅片將不會有同樣的重量和品質。
4.看品牌
鼓勵大家選用知名品牌。因為開關的質量關乎電器的正常使用,甚至生活的便利程度。采訪中許多經銷商都表示過同樣的觀點,即很多小廠家生產的開關或者插座很不可靠,根本就用不了多長時間,而經常更換顯然是非常麻煩的;但大多數知名品牌會向消費者進行有效承諾,如"可用15年"、"保證12年使用壽命"、"可連續開關10000次"等。
5.看服務
盡可能到正規廠家指定的專賣店或銷售點去購買,並且索要購物發票,這樣才能保證能夠享受到日後的售後服務。
6.看標識
要注意開關、插座的底座上的標識:包括長城認證(ccee)、額定電流電壓。
7.看包裝
產品包裝面上應該有清晰的廠家地址電話,內有使用說明和合格證。
網路含義
插座:網路新義:表示笑話很冷,笑得很僵硬,也可表示會心一笑。

B. Socket到底是什麼

哈哈,我用自己的語言來說一下

打開英文詞霸,發現socket的中文意思是插座的意思。

簡言之socket就是:有插座,有插頭,有電器(比如電燈)。

插座帶電, 插頭插入插座以後,就可以把電流通到電器裡面去,這時候電燈就可以工作了。

引申一下呢:
插座:相當於服務端程序,他可以向客戶(電器)提供資料,任何人只要滿足一定條件就可以去服務端取資料(電流);
插頭:就是socket,它是一種抽象的東西,也可以理解成一種規范,大家都承諾會尊守這一個規范,比如插頭有三腳的,兩腳的,四腳的,等等,大小也有規定。只要是插座能接受的就可以插入進去。
電流: 從伺服器取下來的資料就可以認為是電流,可以供人參考查詢等等。
電器: 我們的客戶端程序就是電器,比如IE其實就是客戶端程序,QQ也是。我們利用IE,給他指定一個網址,他就會利用HTTP協議去指定的伺服器網站取下新聞等資訊給我們看。給我們看的過程需要程序進行分解,如播音樂、放動畫等等;

socket的工作過程:
簡述一下QQ聊天的工作原理。
假設騰訊公司建立了一個伺服器,socketServer 並打開了 5555 這個埠
其實就是給了全中國的人一個插座,並且規定只接收規格是 5555的插頭,大家都可以把插頭插到騰訊公司的伺服器上去取電流;

這時候玩家A 利用客戶端 插上去了,於是他與伺服器建立了通道。有電流的聯系了,並且是雙向的,他即可以向伺服器取消息,又可以把消息發到伺服器。
於是他向伺服器發送了一條消息(電流)在消息中說明了想要說的話,並且指明要發給一個叫玩家B的人。
這時候伺服器接收了這條消息,暫存。
過了一會兒,玩家B也插上去了插座,並向伺服器發送了一條消息,說我上來了。
伺服器檢測到玩家B正好是之前玩家A要發送的對象,於是通過通道把消息發給了玩家B,這樣玩家B就看到了玩家A說的話。

Connection :通道,連接,可以是Socket的。並且可以從中得到InputStream 和OutputStream;
OutputStream: 有了通道就可以以流的形式發送想要發送的東西,比方有了電線才可以把電流傳到另一端,在網路中大家傳送的都是位元組流byte
inputStream: 有了通道就可以以流的形式接收想要收的東西。

現在可以通過OutputStream把想要說的話向伺服器發送,通過Socket通道
也可以通過InputStream向伺服器索要與自己相關的內容。

明白未?

C. socket是什麼呀

Socket介面是TCP/IP網路的API(Application Programming Interface,應用程序編程介面),Socket介面定義了許多函數或常式,程序員可以用它們來開發 TCP/IP網路上的應用程序。

請參閱以下資料:

socket非常類似於電話插座。以一個國家級電話網為例。電話的通話雙方相當於相互通信的2個進程,區號是它的網路地址;區內一個單位的交換機相當於一台主機,主機分配給每個用戶的局內號碼相當於socket號。任何用戶在通話之前,首先要佔有一部電話機,相當於申請一個socket;同時要知道對方的號碼,相當於對方有一個固定的socket。然後向對方撥號呼叫,相當於發出連接請求(假如對方不在同一區內,還要撥對方區號,相當於給出網路地址)。對方假如在場並空閑(相當於通信的另一主機開機且可以接受連接請求),拿起電話話筒,雙方就可以正式通話,相當於連接成功。雙方通話的過程,是一方向電話機發出信號和對方從電話機接收信號的過程,相當於向socket發送數據和從socket接收數據。通話結束後,一方掛起電話機相當於關閉socket,撤消連接。

在電話系統中,一般用戶只能感受到本地電話機和對方電話號碼的存在,建立通話的過程,話音傳輸的過程以及整個電話系統的技術細節對他都是透明的,這也與socket機制非常相似。socket利用網間網通信設施實現進程通信,但它對通信設施的細節毫不關心,只要通信設施能提供足夠的通信能力,它就滿足了。

至此,我們對socket進行了直觀的描述。抽象出來,socket實質上提供了進程通信的端點。進程通信之前,雙方首先必須各自創建一個端點,否則是沒有辦法建立聯系並相互通信的。正如打電話之前,雙方必須各自擁有一台電話機一樣。在網間網內部,每一個socket用一個半相關描述:

(協議,本地地址,本地埠)

一個完整的socket有一個本地唯一的socket號,由操作系統分配。

最重要的是,socket 是面向客戶/伺服器模型而設計的,針對客戶和伺服器程序提供不同的socket 系統調用。客戶隨機申請一個socket (相當於一個想打電話的人可以在任何一台入網電話上撥號呼叫),系統為之分配一個socket號;伺服器擁有全局公認的 socket ,任何客戶都可以向它發出連接請求和信息請求(相當於一個被呼叫的電話擁有一個呼叫方知道的電話號碼)。

socket利用客戶/伺服器模式巧妙地解決了進程之間建立通信連接的問題。伺服器socket 半相關為全局所公認非常重要。讀者不妨考慮一下,兩個完全隨機的用戶進程之間如何建立通信?假如通信雙方沒有任何一方的socket 固定,就好比打電話的雙方彼此不知道對方的電話號碼,要通話是不可能的。

實際應用中socket例子

Socket 介面是訪問 Internet 使用得最廣泛的方法。 如果你有一台剛配好TCP/IP協議的主機,其IP地址是202.120.127.201, 此時在另一台主機或同一台主機上執行ftp 202.120.127.201,顯然無法建立連接。因"202.120.127.201" 這台主機沒有運行FTP服務軟體。同樣, 在另一台或同一台主機上運行瀏覽軟體 如Netscape,輸入"http://202.120.127.201",也無法建立連接。現在,如果在這台主機上運行一個FTP服務軟體(該軟體將打開一個Socket, 並將其綁定到21埠),再在這台主機上運行一個Web 服務軟體(該軟體將打開另一個Socket,並將其綁定到80埠)。這樣,在另一台主機或同一台主機上執行ftp 202.120.127.201,FTP客戶軟體將通過21埠來呼叫主機上由FTP 服務軟體提供的Socket,與其建立連接並對話。而在netscape中輸入"http://202.120.127.201"時,將通過80埠來呼叫主機上由Web服務軟體提供的Socket,與其建 立連接並對話。

在Internet上有很多這樣的主機,這些主機一般運行了多個服務軟體,同時提供幾種服務。每種服務都打開一個Socket,並綁定到一個埠上,不同的埠對應於不同的服務。Socket正如其英文原意那樣,象一個多孔插座。一台主機猶如布滿各種插座的房間,每個插座有一個編號,有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節目。 客戶軟體將插頭插到不同編號的插座,就可以得到不同的服務。

一個Server-Client模型程序的開發原理:

伺服器,使用ServerSocket監聽指定的埠,埠可以隨意指定(由於1024以下的埠通常屬於保留埠,在一些操作系統中不可以隨意使用,所以建議使用大於1024的埠),等待客戶連接請求,客戶連接後,會話產生;在完成會話後,關閉連接。

客戶端,使用Socket對網路上某一個伺服器的某一個埠發出連接請求,一旦連接成功,打開會話;會話完成後,關閉Socket。客戶端不需要指定打開的埠,通常臨時的、動態的分配一個1024以上的埠。

Socket介面是TCP/IP網路的API,Socket介面定義了許多函數或常式,程序員可以用它們來開發TCP/IP網路上的應用程序。要學Internet上的TCP/IP網路編程,必須理解Socket介面。 Socket介面設計者最先是將介面放在Unix操作系統裡面的。如果了解Unix系統的輸入和輸出的話,就很容易了解Socket了。網路的Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個類似於打開文件的函數調用Socket(),該函數返回一個整型的Socket描述符,隨後的連接建立、數據傳輸等操作都是通過該Socket實現的。

常用的Socket類型有兩種:流式Socket(SOCK_STREAM)和數據報式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對於面向連接的TCP服務應用;數據報式Socket是一種無連接的Socket,對應於無連接的UDP服務應用。 Socket建立為了建立Socket,程序可以調用Socket函數,該函數返回一個類似於文件描述符的句柄。socket函數原型為:int socket(int domain, int type, int protocol);domain指明所使用的協議族,通常為PF_INET,表示互聯網協議族(TCP/IP協議族);type參數指定socket的類型:SOCK_STREAM 或SOCK_DGRAM,Socket介面還定義了原始Socket(SOCK_RAW),允許程序使用低層協議;protocol通常賦值"0"。Socket()調用返回一個整型socket描述符,你可以在後面的調用使用它。 Socket描述符是一個指向內部數據結構的指針,它指向描述符表入口。調用Socket函數時,socket執行體將建立一個Socket,實際上"建立一個Socket"意味著為一個Socket數據結構分配存儲空間。 Socket執行體為你管理描述符表。兩個網路程序之間的一個網路連接包括五種信息:通信協議、本地協議地址、本地主機埠、遠端主機地址和遠端協議埠。Socket數據結構中包含這五種信息。 socket在測量軟體中的使用也很廣泛

socket深層次理解

Socket編程基本就是listen,accept以及send,write等幾個基本的操作。

對於網路編程,我們也言必稱TCP/IP,似乎其它網路協議已經不存在了。對於TCP/IP,我們還知道TCP和UDP,前者可以保證數據的正確和可靠性,後者則允許數據丟失。最後,我們還知道,在建立連接前,必須知道對方的IP地址和埠號。除此,普通的程序員就不會知道太多了,很多時候這些知識已經夠用了。最多,寫服務程序的時候,會使用多線程來處理並發訪問。

我們還知道如下幾個事實:

1。一個指定的埠號不能被多個程序共用。比如,如果IIS佔用了80埠,那麼Apache就不能也用80埠了。

2。很多防火牆只允許特定目標埠的數據包通過。

3。服務程序在listen某個埠並accept某個連接請求後,會生成一個新的socket來對該請求進行處理。

於是,一個困惑了我很久的問題就產生了。如果一個socket創建後並與80埠綁定後,是否就意味著該socket佔用了80埠呢?如果是這樣的,那麼當其accept一個請求後,生成的新的socket到底使用的是什麼埠呢(我一直以為系統會默認給其分配一個空閑的埠號)?如果是一個空閑的埠,那一定不是80埠了,於是以後的TCP數據包的目標埠就不是80了--防火牆一定會組織其通過的!實際上,我們可以看到,防火牆並沒有阻止這樣的連接,而且這是最常見的連接請求和處理方式。我的不解就是,為什麼防火牆沒有阻止這樣的連接?它是如何判定那條連接是因為connet80埠而生成的?是不是TCP數據包里有什麼特別的標志?或者防火牆記住了什麼東西?

後來,我又仔細研讀了TCP/IP的協議棧的原理,對很多概念有了更深刻的認識。比如,在TCP和UDP同屬於傳輸層,共同架設在IP層(網路層)之上。而IP層主要負責的是在節點之間(End to End)的數據包傳送,這里的節點是一台網路設備,比如計算機。因為IP層只負責把數據送到節點,而不能區分上面的不同應用,所以TCP和UDP協議在其基礎上加入了埠的信息,埠於是標識的是一個節點上的一個應用。除了增加埠信息,UPD協議基本就沒有對IP層的數據進行任何的處理了。而TCP協議還加入了更加復雜的傳輸控制,比如滑動的數據發送窗口(Slice Window),以及接收確認和重發機制,以達到數據的可靠傳送。不管應用層看到的是怎樣一個穩定的TCP數據流,下面傳送的都是一個個的IP數據包,需要由TCP協議來進行數據重組。

所以,我有理由懷疑,防火牆並沒有足夠的信息判斷TCP數據包的更多信息,除了IP地址和埠號。而且,我們也看到,所謂的埠,是為了區分不同的應用的,以在不同的IP包來到的時候能夠正確轉發。

TCP/IP只是一個協議棧,就像操作系統的運行機制一樣,必須要具體實現,同時還要提供對外的操作介面。就像操作系統會提供標準的編程介面,比如Win32編程介面一樣,TCP/IP也必須對外提供編程介面,這就是Socket編程介面--原來是這么回事啊!

在Socket編程介面里,設計者提出了一個很重要的概念,那就是socket。這個socket跟文件句柄很相似,實際上在BSD系統里就是跟文件句柄一樣存放在一樣的進程句柄表裡。這個socket其實是一個序號,表示其在句柄表中的位置。這一點,我們已經見過很多了,比如文件句柄,窗口句柄等等。這些句柄,其實是代表了系統中的某些特定的對象,用於在各種函數中作為參數傳入,以對特定的對象進行操作--這其實是C語言的問題,在C++語言里,這個句柄其實就是this指針,實際就是對象指針啦。

現在我們知道,socket跟TCP/IP並沒有必然的聯系。Socket編程介面在設計的時候,就希望也能適應其他的網路協議。所以,socket的出現只是可以更方便的使用TCP/IP協議棧而已,其對TCP/IP進行了抽象,形成了幾個最基本的函數介面。比如create,listen,accept,connect,read和write等等。

現在我們明白,如果一個程序創建了一個socket,並讓其監聽80埠,其實是向TCP/IP協議棧聲明了其對80埠的佔有。以後,所有目標是80埠的TCP數據包都會轉發給該程序(這里的程序,因為使用的是Socket編程介面,所以首先由Socket層來處理)。所謂accept函數,其實抽象的是TCP的連接建立過程。accept函數返回的新socket其實指代的是本次創建的連接,而一個連接是包括兩部分信息的,一個是源IP和源埠,另一個是宿IP和宿埠。所以,accept可以產生多個不同的socket,而這些socket里包含的宿IP和宿埠是不變的,變化的只是源IP和源埠。這樣的話,這些socket宿埠就可以都是80,而Socket層還是能根據源/宿對來准確地分辨出IP包和socket的歸屬關系,從而完成對TCP/IP協議的操作封裝!而同時,放火牆的對IP包的處理規則也是清晰明了,不存在前面設想的種種復雜的情形。

D. 什麼是Socket

什麼是socket?
你經常聽到人們談論著「socket」,或許你還不知道它的確切含義。現在讓我告訴你:它是使用標准Unix文件描述符(filedescriptor)和其它程序通訊的方式。什麼?你也許聽到一些Unix高手(hacker)這樣說過:「呀,Unix中的一切就是文件!」那個傢伙也許正在說到一個事實:Unix程序在執行任何形式的I/O的時候,程序是在讀或者寫一個文件描述符。一個文件描述符只是一個和打開的文件相關聯的整數。但是(注意後面的話),這個文件可能是一個網路連接,FIFO,管道,終端,磁碟上的文件或者什麼其它的東西。Unix中所有的東西就是文件!所以,你想和Internet上別的程序通訊的時候,你將要使用到文件描述符。你必須理解剛才的話。現在你腦海中或許冒出這樣的念頭:「那麼我從哪裡得到網路通訊的文件描述符呢?」,這個問題無論如何我都要回答:你利用系統調用socket(),它返回套接字描述符(socketdescriptor),然後你再通過它來進行send()和recv()調用。「但是...」,你可能有很大的疑惑,「如果它是個文件描述符,那麼為什麼不用一般調用read()和write()來進行套接字通訊?」簡單的答案是:「你可以使用!」。詳細的答案是:「你可以,但是使用send()和recv()讓你更好的控制數據傳輸。」存在這樣一個情況:在我們的世界上,有很多種套接字。有DARPAInternet地址(Internet套接字),本地節點的路徑名(Unix套接字),CCITTX.25地址(你可以將X.25套接字完全忽略)。

E. 什麼是socket

英文是「孔」或「插座」的意思,計算機中翻譯為套接字,是計算機網路編制的一種機制。

F. 網路中的socket是什麼意思,它與埠和IP地址到底是什麼關系啊~謝謝

三者從本質上來說沒有可比性,
socket則是對TCP/IP協議的封裝和應用(程序員層面上)。
也可以說,TPC/IP協議是傳輸層協議,主要解決數據如何在網路中傳輸,
而HTTP是應用層協議,主要解決如何包裝數據。
關於TCP/IP和HTTP協議的關系,網路有一段比較容易理解的介紹:
「我們在傳輸數據時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別數據內容。
如果想要使傳輸的數據有意義,則必須使用到應用層協議。
應用層協議有很多,比如HTTP、FTP、TELNET等,也可以自己定義應用層協議。
WEB使用HTTP協議作應用層協議,以封裝HTTP文本信息,然後使用TCP/IP做傳輸層協議將它發到網路上。」
而我們平時說的最多的socket是什麼呢,實際上socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個調用介面(API)。
通過Socket,我們才能使用TCP/IP協議。
實際上,Socket跟TCP/IP協議沒有必然的聯系。
Socket編程介面在設計的時候,就希望也能適應其他的網路協議。
所以說,Socket的出現只是使得程序員更方便地使用TCP/IP協議棧而已,是對TCP/IP協議的抽象,
從而形成了我們知道的一些最基本的函數介面,比如create、listen、connect、accept、send、read和write等等。
網路有一段關於socket和TCP/IP協議關系的說法比較容易理解:
「TCP/IP只是一個協議棧,就像操作系統的運行機制一樣,必須要具體實現,同時還要提供對外的操作介面。
這個就像操作系統會提供標準的編程介面,比如win32編程介面一樣,
TCP/IP也要提供可供程序員做網路開發所用的介面,這就是Socket編程介面。」
關於TCP/IP協議的相關只是,用博大精深來講我想也不為過,單單查一下網上關於此類只是的資料和書籍文獻的數量就知道,

G. socket是什麼意思

socket是插座,插槽的意思,電腦CPU座上一般可以看到

H. socket是什麼意思

socket(也叫套接字)最初是在Unix系統上開發的網路通信的介面。
後來微軟等公司將它移植到了windows下,當然原來unix系統下的還是好用的。
對於socket可以這樣理解:
它就是一個函數庫,裡麵包括大量的函數和相應的數據結構,已經實現好了。
它支持網路通信。
程序開發人員可以通過閱讀相關的函數文檔,了解函數的使用方法,進行網路的編程。
兩種形式的socket:流式套接字,對應與TCP協議。
數據報套接字,對應與UDP協議。