這篇文章將為大家詳細(xì)講解有關(guān)使用c語(yǔ)言怎么關(guān)閉socket,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新新互聯(lián),憑借十載的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有成百上千案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(liá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ě)功能,此選項(xiàng)將不允許sockfd進(jìn)行寫(xiě)操作。不允許發(fā)送。
SHUT_RDWR(2):關(guān)閉sockfd的讀寫(xiě)功能。不允許發(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)閉讀寫(xiě)。它將防止套接字上更多的數(shù)據(jù)的讀寫(xiě)。任何在另一端讀寫(xiě)套接字的企 圖都將返回錯(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.
關(guān)于使用c語(yǔ)言怎么關(guān)閉socket就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)站題目:使用c語(yǔ)言怎么關(guān)閉socket
網(wǎng)頁(yè)鏈接:http://chinadenli.net/article48/jgipep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站維護(hù)、云服務(wù)器、網(wǎng)站設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)