国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

如何在c語言下關閉socket

2020-01-26 13:27:59
字體:
來源:轉載
供稿:網友

c語言關閉socket的兩種方式

一、shutdown()

#include<sys/socket.h>int shutdown(int sockfd,int how);

how的方式有三種分別是

SHUT_RD(0):關閉sockfd上的讀功能,此選項將不允許sockfd進行讀操作。不允許接受。

SHUT_WR(1):關閉sockfd的寫功能,此選項將不允許sockfd進行寫操作。不允許發送。

SHUT_RDWR(2):關閉sockfd的讀寫功能。不允許發送和接受(和 close() 一樣)。

成功則返回0,錯誤返回-1,錯誤碼errno:EBADF表示sockfd不是一個有效描述符;ENOTCONN表示sockfd未連接;ENOTSOCK表示sockfd是一個文件描述符而不是socket描述符。

二、close()

#include<unistd.h>int close(int fd);

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

成功則返回0,錯誤返回-1,錯誤碼errno:EBADF表示fd不是一個有效描述符;EINTR表示close函數被信號中斷;EIO表示一個IO錯誤。

區別:

1、shutdown()在如何關閉套接字上有多一點的控制。shutdown 可以單向關閉,Close不可以。

2、當多線程共享/調用同一個Socket時,Close只是會減1,直到減到0才會真正去關閉Socket,

而shutdown則不會理會有多少線程在用,強制直接關閉socket.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 横山县| 墨玉县| 通河县| 泰兴市| 霍林郭勒市| 日土县| 那曲县| 准格尔旗| 永新县| 泸水县| 盐津县| 肥东县| 闽侯县| 镇巴县| 昌邑市| 闽侯县| 五寨县| 周宁县| 镇赉县| 鄂伦春自治旗| 万荣县| 藁城市| 鹤峰县| 察雅县| 乌苏市| 灌南县| 曲沃县| 潜山县| 屏山县| 泗阳县| 广汉市| 屯昌县| 苍梧县| 林芝县| 古丈县| 开封市| 武城县| 高陵县| 正镶白旗| 黄石市| 淮南市|