socket了解 一二

2021-06-27 11:14:50 字數 1030 閱讀 8337

在看init程序解析過程中,針對子程序終止的時候處理使用了套接字,也就是socket。

socket之前一直沒有概念。只是聽到別人說起,具體用法一概不知道。

socket可以理解成打**,打**的時候,建立了乙個通道,兩邊都可以說話。

socket建立一下子就建立了2個控制代碼,相當於通道兩端,用於讀寫資料,關閉通道用。

建立socket:

int  socketpair(int domain,int type,int protocol,int sv[2]);

domain 套接字的網域名稱,

type        套接字的型別;

protocol 套接字的協議;

sv[2]指向接收用於引用套接字檔案描述符的陣列的指標。--sv是包含2個整型值的陣列,每個整型值代表乙個套介面,這個套介面類似於管道中某一端的端點。

通過這個函式就建立了2個能夠相互通訊的套介面。

2個套介面直接通訊通過操作檔案的藉口通過write 、read, close來操作。

close直接關閉了雙向通道,讀和寫;

shutdown可以關閉單向的,只關閉讀,只關閉寫,關閉讀寫;並且shutdown之後,檔案描述符還是可用的,實際還是需要通過close在釋放這個描述符。

這裡經常提到的是,某些需要建立連線才能夠使用,具體socket如何建立連線的,是不是通過這個socketpair建立了連線?是的

在init裡面用到的是,在程序死掉的時候,通過建立的套接字對進行通訊,

訊號安裝函式,在子程序終止的時候,會接收到sigchld訊號。

另外的子程序處理機制會通過收到init程序的訊息,進行某些處理。

init程序建立了很多套接字。

套接字查詢命令:

cat /dev/socket/

網路 socket程式設計的初步了解

應用層通過傳輸層進行資料通訊時,tcp和udp會遇到同時為多個應用程式進行提供併發服務的問題。多個tcp連線或者多個應用程式程序可能需要同乙個tcp協議埠進行傳輸資料,為了區別不同應用程式程序和連線,需要計算機作業系統為應用程式與tcp ip協議互動提供了套接字 socket 的介面,區分不同應用程...

open falcon 學習一二

執行到啟動dashboard的時候一直報錯.env bin python wsgi.py 解決思路是缺少mysql相關包 執行解除安裝mysql python,然後在安裝 建議把dashboard停止,control stop 然後在解除安裝和安裝,否則就會出現我碰到的情況,mysql包一直認不到 ...

搜狗一 二面

今天早上去面的搜狗,一面二面加起來總共兩個小時,感覺就是一直一直寫 複習過的就寫的很順,沒看過的就根本想不出來怎麼做,還是思維不夠靈活啊。c 多型實現機制 epoll工作機制 虛函式和純虛函式的區別 構造 析構函式是否能為虛函式 linux動態鏈結和靜態鏈結 智慧型指標auto ptr,shared...