close和shutdown函式的區別

2022-08-20 04:24:10 字數 282 閱讀 2815

close函式首先是將傳入的socket控制代碼引用數減1(因為fork程序時會導致socket控制代碼被多個程序引用),待到引用數等於0的時候,close才會真正關閉連線。

shutdown函式是立刻關閉連線(忽視控制代碼引用數值),關閉有三種方式

shut_rd 關閉呼叫程序的讀通道,呼叫程序立刻不能讀網路資料,讀緩衝裡的資料會被清空

shut_wr 關閉呼叫程序的寫信道,呼叫程序立刻不能寫網路資料,寫緩衝裡的資料立刻會被傳送出去

shut_rdwr 關閉整個連線 close和shutdown函式

shutdown和close的區別

當所有的資料操作結束以後,你可以呼叫close 函式來釋放該socket,從而停止在該socket上的任何資料操作 close sockfd 你也可以呼叫shutdown 函式來關閉該socket。該函式允許你只停止在某個方向上的資料傳輸,而乙個方向上的資料傳輸繼續進行。如你可以關 閉某socket...

close與shutdown的區別

終止網路連線的通常方法是呼叫close函式。不過close有兩個限制,卻可以使用shutdown來避免。1 close把描述字的引用計數減1,僅在該計數變為0的時候才關閉套介面。而使用shutdown可以不管引用計數的值是多少就激發tcp的正常連線終止序列,也即是傳送fin節。2 close終止資料...

socket shutdown和close的區別

shutdown doesn t actually close the file descriptor it just changes its usability.to free a socket descriptor,you need to use close 以下均基於單程序socket。服務端...