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。服務端...