socket函式詳解 (有了新的認識)

2021-06-18 21:13:20 字數 798 閱讀 1989

我們先來看一下socket函式的原型:

socket pascal far socket (int af, int type, int protocol);

典型的呼叫方式為:

unsigned int socksrv = socket(af_inet, sock_stream, 0);

1.af是address family的縮寫,實際上就是指明域domain, 這個af主要是用來區分是建立ipv4的套接字還是ipv6的套接字。   當然, 順便說一下, 如果是在unix中, 第乙個引數還可以是af_unix, 表示這個socket既不是ipv4的socket, 也不是ipv6的socket, 而是非網路形式的unix域socket, 可以用來進行非網路形式的程序間通訊。 在很多嵌入式系統中, 程序間的通訊均是通過非網路形式的unix域套接字來完成的。不過, 我們要明白, unix域套接字的客戶端和服務端進行通訊時, 客戶端和服務端必須位於同一臺機器上, 而且效率比網路套接字更高。

2. 我以前總是以為, 這個type值決定了是tcp套接字還是udp套接字, 其實不是的。 type值決定的是流套接字還是資料報套接字或者其他。 注意流套接字不一定是tcp, 資料報套接字也不一定是udp.

3. protocol這個值通常為0, 為0的時候是什麼意思呢? 意思是, 如果type是流套接字, 且protocol為0, 那麼就是就是預設的流套接字---tcp套接字。 同理, 如果type是資料報套接字, 且protocol為0, 那麼就是預設的資料報套接字---udp套接字。

返回值其實就是乙個無符號整形,用於標識和索引套接字。可以通過返回值判斷套接字是否建立成功。

1 有了新的開始

最近換了一家新公司,還沒正式入職。因為下週有四天要為畢業做準備,所以下下週的周一再正式入職。換工作的起因是因為我一直想往移動端發展,但是之前做的一直是web端,而姐姐的建議是半路轉不專業,而且思維也會有所限制。然後就毅然離職了。出來以後才知道自己有多水,以前一直覺得帶我的學長很厲害,新公司老大面我的...

位操作 對優化演算法有了個新的認識

好久沒來csdn了,今天想問個關於c讀取扇區的問題 沒人回答 結果看到乙個n皇后問題最快的演算法,看了好一會才明白,這演算法巧妙之處我認為有 個 以前都是用陣列來描述狀態,而這演算法採用是的位來描述,運算速度可以大大提公升,以後寫程式對於描述狀態的變數大家可以借鑑這個例子,會讓你的程式跑得更快 描述...

易到司機提現問題有了新的進展

易到用車今日發布宣告,就易到司機提現問題進行說明。易到方面表示,公司將於6月29日全面開放線上提現,並對司機提現延誤表示歉意。同時,公司還稱正在有序推進融資事宜,目前已處於落地階段,相關具體將擇期予以公布。周峰 以下為宣告全文 關於 易到司機提現問題 的說明 近一段時間來,解決司機提現 與 推進新一...