程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> Beej’s Guide Network to Programming 系列連載16

Beej’s Guide Network to Programming 系列連載16

編輯:關於C

5.9. close()和shutdown() ---別讓我再見到你的臉!
       你已經整天都在發送(send()) 和接收 (recv()) 數據了,現在你准備關閉你的套接字描述符了。這很簡單,你可以使用一般的 Unix 文件描述符的 close() 函數:

int close(sockfd);

       它將防止套接字上更多的數據的讀寫。任何在另一端讀寫套接字的企 圖都將返回錯誤信息。

如果你想在如何關閉套接字上有多一點的控制,你可以使用函數 shutdown()。它允許你將一定方向上的通訊或者雙向的通訊(就象close()一樣)關閉,你可以使用:

int shutdown(intsockfd, int how);

sockfd 是你想要關閉的套接字文件描述復。how 的值是下面的其中之 一:

  0 – 不允許接受

  1 – 不允許發送

  2 – 不允許發送和接受(和 close() 一樣)

shutdown() 成功時返回 0,失敗時返回 -1(同時設置 errno。) 如果在無連接的數據報套接字中使用shutdown(),那麼只不過是讓send() 和 recv() 不能使用(記住你在數據報套接字中使用了 connect 後是可以使用它們的)。

 

摘自 xiaobin_HLJ80的專欄
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved