欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在c語(yǔ)言下關(guān)閉socket

 更新時(shí)間:2019年05月20日 14:19:58   作者:a787188834  
如果不主動(dòng)關(guān)閉socket的話,系統(tǒng)不會(huì)自動(dòng)關(guān)閉的,除非當(dāng)前進(jìn)程掛掉了,操作系統(tǒng)把占用的socket回收了才會(huì)關(guān)閉。下面小編來(lái)簡(jiǎn)單介紹下

c語(yǔ)言關(guān)閉socket的兩種方式

一、shutdown()

#include<sys/socket.h>

int shutdown(int sockfd,int how);

how的方式有三種分別是

SHUT_RD(0):關(guān)閉sockfd上的讀功能,此選項(xiàng)將不允許sockfd進(jìn)行讀操作。不允許接受。

SHUT_WR(1):關(guān)閉sockfd的寫功能,此選項(xiàng)將不允許sockfd進(jìn)行寫操作。不允許發(fā)送。

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

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

二、close()

#include<unistd.h>

int close(int fd);

關(guān)閉讀寫。它將防止套接字上更多的數(shù)據(jù)的讀寫。任何在另一端讀寫套接字的企 圖都將返回錯(cuò)誤信息。

成功則返回0,錯(cuò)誤返回-1,錯(cuò)誤碼errno:EBADF表示fd不是一個(gè)有效描述符;EINTR表示close函數(shù)被信號(hào)中斷;EIO表示一個(gè)IO錯(cuò)誤。

區(qū)別:

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

2、當(dāng)多線程共享/調(diào)用同一個(gè)Socket時(shí),Close只是會(huì)減1,直到減到0才會(huì)真正去關(guān)閉Socket,

而shutdown則不會(huì)理會(huì)有多少線程在用,強(qiáng)制直接關(guān)閉socket.

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語(yǔ)言每日練習(xí)之求兩個(gè)矩陣的乘積詳解

    C語(yǔ)言每日練習(xí)之求兩個(gè)矩陣的乘積詳解

    這篇文章主要介紹了如何求兩個(gè)矩陣的乘積,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-11-11
  • 數(shù)據(jù)結(jié)構(gòu)C語(yǔ)言鏈表的實(shí)現(xiàn)介紹

    數(shù)據(jù)結(jié)構(gòu)C語(yǔ)言鏈表的實(shí)現(xiàn)介紹

    大家好,本篇文章主要講的是數(shù)據(jù)結(jié)構(gòu)C語(yǔ)言鏈表的實(shí)現(xiàn)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2021-12-12
  • C?++迭代器iterator在string中使用方法介紹

    C?++迭代器iterator在string中使用方法介紹

    迭代器是一種檢查容器內(nèi)元素并遍歷元素的數(shù)據(jù)類型。迭代器是一個(gè)變量,提供對(duì)一個(gè)容器中的對(duì)象的(間接)訪問(wèn)方法,并且定義了容器中對(duì)象的范圍。迭代器可以指向容器中的某個(gè)元素,通過(guò)迭代器就可以對(duì)非數(shù)組(存儲(chǔ)空間不連續(xù))的數(shù)據(jù)結(jié)構(gòu)進(jìn)行遍歷
    2022-10-10
  • QT5編譯使用QFtp的方法步驟

    QT5編譯使用QFtp的方法步驟

    這篇文章主要介紹了QT5編譯使用QFtp的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • C語(yǔ)言使用openSSL庫(kù)DES模塊實(shí)現(xiàn)加密功能詳解

    C語(yǔ)言使用openSSL庫(kù)DES模塊實(shí)現(xiàn)加密功能詳解

    這篇文章主要介紹了C語(yǔ)言使用openSSL庫(kù)DES模塊實(shí)現(xiàn)加密功能,簡(jiǎn)單講解了DES加密的相關(guān)概念,并結(jié)合實(shí)例形式分析了DES加密的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-05-05
  • C語(yǔ)言中的BYTE和char深入解析

    C語(yǔ)言中的BYTE和char深入解析

    在C語(yǔ)言中,字符(character)這個(gè)術(shù)語(yǔ)具有兩個(gè)層次上的含義:書(shū)寫源程序的字符和程序處理的字符
    2013-10-10
  • c++調(diào)用實(shí)現(xiàn)yolov5轉(zhuǎn)onnx介紹

    c++調(diào)用實(shí)現(xiàn)yolov5轉(zhuǎn)onnx介紹

    大家好,本篇文章主要講的是c++調(diào)用實(shí)現(xiàn)yolov5轉(zhuǎn)onnx介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 八皇后問(wèn)題的相關(guān)C++代碼解答示例

    八皇后問(wèn)題的相關(guān)C++代碼解答示例

    這篇文章主要介紹了八皇后問(wèn)題的相關(guān)C++代碼解答示例,文中包括ACM競(jìng)賽的八皇后相關(guān)知識(shí)的練習(xí)實(shí)例,需要的朋友可以參考下
    2015-08-08
  • C++遞歸刪除一個(gè)目錄實(shí)例

    C++遞歸刪除一個(gè)目錄實(shí)例

    這篇文章主要介紹了C++遞歸刪除一個(gè)目錄的實(shí)現(xiàn)方法,涉及到目錄的操作及遞歸算法的應(yīng)用,需要的朋友可以參考下
    2014-10-10
  • c++創(chuàng)建二維動(dòng)態(tài)數(shù)組與內(nèi)存釋放問(wèn)題

    c++創(chuàng)建二維動(dòng)態(tài)數(shù)組與內(nèi)存釋放問(wèn)題

    這篇文章主要介紹了c++創(chuàng)建二維動(dòng)態(tài)數(shù)組與內(nèi)存釋放問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06

最新評(píng)論