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

詳解C語言中accept()函數(shù)和shutdown()函數(shù)的使用

 更新時間:2015年09月06日 14:56:58   投稿:goldensun  
這篇文章主要介紹了詳解C語言中accept()函數(shù)和shutdown()函數(shù)的使用,用來操作socket相關(guān)的網(wǎng)絡(luò)通信,需要的朋友可以參考下

C語言accept()函數(shù):接受socket連線
頭文件:

#include <sys/types.h>  #include <sys/socket.h>

定義函數(shù):

int accept(int s, struct sockaddr * addr, int * addrlen);

函數(shù)說明:accept()用來接受參數(shù)s 的socket 連線. 參數(shù)s 的socket 必需先經(jīng)bind()、listen()函數(shù)處理過, 當(dāng)有連線進來時accept()會返回一個新的socket 處理代碼, 往后的數(shù)據(jù)傳送與讀取就是經(jīng)由新的socket處理, 而原來參數(shù)s 的socket 能繼續(xù)使用accept()來接受新的連線要求. 連線成功時, 參數(shù)addr 所指的結(jié)構(gòu)會被系統(tǒng)填入遠程主機的地址數(shù)據(jù), 參數(shù)addrlen 為scokaddr 的結(jié)構(gòu)長度. 關(guān)于機構(gòu)sockaddr 的定義請參考bind().

返回值:成功則返回新的socket 處理代碼, 失敗返回-1, 錯誤原因存于errno 中.

錯誤代碼:
1、EBADF 參數(shù)s 非合法socket 處理代碼.
2、EFAULT 參數(shù)addr 指針指向無法存取的內(nèi)存空間.
3、ENOTSOCK 參數(shù)s 為一文件描述詞, 非socket.
4、EOPNOTSUPP 指定的socket 并非SOCK_STREAM.
5、EPERM 防火墻拒絕此連線.
6、ENOBUFS 系統(tǒng)的緩沖內(nèi)存不足.
7、ENOMEM 核心內(nèi)存不足.

C語言shutdown()函數(shù):終止socket通信
頭文件:

#include <sys/socket.h>

定義函數(shù):

int shutdown(int s, int how);

函數(shù)說明:shutdown()用來終止參數(shù)s 所指定的socket 連線. 參數(shù)s 是連線中的socket 處理代碼, 參數(shù)how有下列幾種情況:

  •    how=0 終止讀取操作.
  •    how=1 終止傳送操作
  •    how=2 終止讀取及傳送操作

返回值:成功則返回0, 失敗返回-1, 錯誤原因存于errno.

錯誤代碼:
1、EBADF 參數(shù)s 不是有效的socket 處理代碼
2、ENOTSOCK 參數(shù)s 為一文件描述詞, 非socket
3、ENOTCONN 參數(shù)s 指定的socket 并未連線

相關(guān)文章

  • C++實現(xiàn)希爾排序(ShellSort)

    C++實現(xiàn)希爾排序(ShellSort)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)希爾排序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語言中函數(shù)聲明與調(diào)用問題

    C語言中函數(shù)聲明與調(diào)用問題

    以下是對C語言中的函數(shù)聲明與調(diào)用進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • 關(guān)于C++靜態(tài)數(shù)據(jù)成員的實現(xiàn)講解

    關(guān)于C++靜態(tài)數(shù)據(jù)成員的實現(xiàn)講解

    今天小編就為大家分享一篇關(guān)于關(guān)于C++靜態(tài)數(shù)據(jù)成員的實現(xiàn)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Qt菜單QMenu和菜單欄QMenuBar及自定義菜單用法

    Qt菜單QMenu和菜單欄QMenuBar及自定義菜單用法

    本文主要介紹了Qt菜單QMenu和菜單欄QMenuBar及自定義菜單用法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • OpenCV圖像處理之直方圖比較方法詳解

    OpenCV圖像處理之直方圖比較方法詳解

    直方圖比較是對輸入的兩張圖像進行計算得到直方圖H1與H2,歸一化到相同的尺度空間,然后可以通過計算H1與H2的之間的距離得到兩個直方圖的相似程度,進而比較圖像本身的相似程度。本文將為大家詳細講講直方圖比較的實現(xiàn)方法,需要的可以參考一下
    2022-09-09
  • CMake 生成靜態(tài)庫與動態(tài)庫的方法步驟

    CMake 生成靜態(tài)庫與動態(tài)庫的方法步驟

    本文主要介紹了CMake 生成靜態(tài)庫與動態(tài)庫的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 詳解C語言內(nèi)核中的鏈表與結(jié)構(gòu)體

    詳解C語言內(nèi)核中的鏈表與結(jié)構(gòu)體

    Windows內(nèi)核中是無法使用vector容器等數(shù)據(jù)結(jié)構(gòu)的,當(dāng)我們需要保存一個結(jié)構(gòu)體數(shù)組時,就需要使用內(nèi)核中提供的專用鏈表結(jié)構(gòu)。本文分享了幾個內(nèi)核中使用鏈表存儲多個結(jié)構(gòu)體的通用案例,希望對你有所幫助
    2022-09-09
  • C++空類詳解

    C++空類詳解

    以下是對C++中的空類進行了詳細的介紹,需要的朋友可以過來參考下
    2013-09-09
  • C語言詳細分析講解流程控制語句用法

    C語言詳細分析講解流程控制語句用法

    C語言語句的執(zhí)行默認順序執(zhí)行(從上往下依次執(zhí)行),編程語言一般除了默認的順序執(zhí)行以外,還提供分支執(zhí)行和循環(huán)執(zhí)行的語法,讓我們一起來看看
    2022-05-05
  • Qt實現(xiàn)一個簡單的word文檔編輯器

    Qt實現(xiàn)一個簡單的word文檔編輯器

    本文主要介紹了Qt實現(xiàn)一個簡單的word文檔編輯器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評論