最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言設(shè)置和取得socket狀態(tài)的相關(guān)函數(shù)用法

 更新時間:2015年09月06日 09:38:57   投稿:goldensun  
這篇文章主要介紹了C語言設(shè)置和取得socket狀態(tài)的相關(guān)函數(shù)用法,分別是setsockopt()函數(shù)和getsockopt()函數(shù)的使用介紹,需要的朋友可以參考下

C語言setsockopt()函數(shù):設(shè)置socket狀態(tài)
頭文件:

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

定義函數(shù):

int setsockopt(int s, int level, int optname, const void * optval, ,socklen_toptlen);

函數(shù)說明:setsockopt()用來設(shè)置參數(shù)s 所指定的socket 狀態(tài). 參數(shù)level 代表欲設(shè)置的網(wǎng)絡(luò)層, 一般設(shè)成SOL_SOCKET 以存取socket 層. 參數(shù)optname 代表欲設(shè)置的選項, 有下列幾種數(shù)值:
   SO_DEBUG 打開或關(guān)閉排錯模式
   SO_REUSEADDR 允許在bind ()過程中本地地址可重復(fù)使用
   SO_TYPE 返回socket 形態(tài).
   SO_ERROR 返回socket 已發(fā)生的錯誤原因
   SO_DONTROUTE 送出的數(shù)據(jù)包不要利用路由設(shè)備來傳輸.
   SO_BROADCAST 使用廣播方式傳送
   SO_SNDBUF 設(shè)置送出的暫存區(qū)大小
   SO_RCVBUF 設(shè)置接收的暫存區(qū)大小
   SO_KEEPALIVE 定期確定連線是否已終止.
   SO_OOBINLINE 當(dāng)接收到OOB 數(shù)據(jù)時會馬上送至標(biāo)準(zhǔn)輸入設(shè)備
   SO_LINGER 確保數(shù)據(jù)安全且可靠的傳送出去.

參數(shù) optval 代表欲設(shè)置的值, 參數(shù)optlen 則為optval 的長度.

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

附加說明:
1、EBADF 參數(shù)s 并非合法的socket 處理代碼
2、ENOTSOCK 參數(shù)s 為一文件描述詞, 非socket
3、ENOPROTOOPT 參數(shù)optname 指定的選項不正確.
4、EFAULT 參數(shù)optval 指針指向無法存取的內(nèi)存空間.

C語言getsockopt()函數(shù):取得socket 狀態(tài)
頭文件:

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

定義函數(shù):

int getsockopt(int s, int level, int optname, void* optval, socklen_t* optlen);

函數(shù)說明:getsockopt()會將參數(shù)s 所指定的socket 狀態(tài)返回. 參數(shù)optname 代表欲取得何種選項狀態(tài), 而參數(shù)optval 則指向欲保存結(jié)果的內(nèi)存地址, 參數(shù)optlen 則為該空間的大小. 參數(shù)level、optname 請參考setsockopt().

返回值:成功則返回0, 若有錯誤則返回-1, 錯誤原因存于errno

錯誤代碼:
1、EBADF 參數(shù)s 并非合法的socket 處理代碼
2、ENOTSOCK 參數(shù)s 為一文件描述詞, 非socket
3、ENOPROTOOPT 參數(shù)optname 指定的選項不正確
4、EFAULT 參數(shù)optval 指針指向無法存取的內(nèi)存空間

范例

#include <sys/types.h>
#include <sys/socket.h>
main()
{
  int s;
  int optval;
  int optlen = sizeof(int);
  if((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  perror("socket");
  getsockopt(s, SOL_SOCKET, SO_TYPE, &optval, &optlen);
  printf("optval = %d\n", optval);
  close(s);
}

執(zhí)行:

optval = 1 //SOCK_STREAM 的定義正是此值

相關(guān)文章

  • C++與Lua協(xié)程交互的示例詳解

    C++與Lua協(xié)程交互的示例詳解

    Lua 語言不支持真正的多線程,即不支持共享內(nèi)存的搶占式線程,在執(zhí)行協(xié)程體的 Lua 腳本時,Lua 同樣可以調(diào)用 C++ 的函數(shù),本文給大家介紹了C++ 與 Lua 的協(xié)程交互,需要的朋友可以參考下
    2024-02-02
  • Embarcadero?Dev-C++輸出中文亂碼問題圖文詳解

    Embarcadero?Dev-C++輸出中文亂碼問題圖文詳解

    Dev-C++(或者叫做 Dev-Cpp)是Windows環(huán)境下的一個輕量級C/C++ 集成開發(fā)環(huán)境(IDE),下面這篇文章主要給大家介紹了關(guān)于Embarcadero?Dev-C++輸出中文亂碼問題的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • C語言中pthread_create函數(shù)實現(xiàn)向線程函數(shù)傳遞參數(shù)

    C語言中pthread_create函數(shù)實現(xiàn)向線程函數(shù)傳遞參數(shù)

    本文主要介紹了C語言中pthread_create函數(shù)實現(xiàn)向線程函數(shù)傳遞參數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • C++靜態(tài)成員變量和靜態(tài)成員函數(shù)的使用方法總結(jié)

    C++靜態(tài)成員變量和靜態(tài)成員函數(shù)的使用方法總結(jié)

    下面小編就為大家?guī)硪黄狢++靜態(tài)成員變量和靜態(tài)成員函數(shù)的使用方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C++實現(xiàn)旅館住宿管理系統(tǒng)

    C++實現(xiàn)旅館住宿管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)旅館住宿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Qt槽函數(shù)會被執(zhí)行多次的問題原因及解決方法

    Qt槽函數(shù)會被執(zhí)行多次的問題原因及解決方法

    本文主要介紹了Qt槽函數(shù)會被執(zhí)行多次的問題原因及解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • vs2022重新編譯opencv-python?cuda加速時報錯的問題解決

    vs2022重新編譯opencv-python?cuda加速時報錯的問題解決

    本文主要介紹了vs2022重新編譯opencv-python?cuda加速時報錯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • php調(diào)用c++的方法

    php調(diào)用c++的方法

    這篇文章主要介紹了php調(diào)用c++的方法,需要的朋友可以參考下
    2014-01-01
  • C語言實現(xiàn)經(jīng)典windows游戲掃雷的示例代碼

    C語言實現(xiàn)經(jīng)典windows游戲掃雷的示例代碼

    今天我們會用C語言實現(xiàn)一個經(jīng)典的windows小游戲:掃雷。掃雷是一款單機小游戲,每次通關(guān)最高難度的關(guān)卡都會開心好一陣?,F(xiàn)在學(xué)會了C語言,總算可以自己實現(xiàn)掃雷了。話不多說,咱們開始吧
    2022-10-10
  • C++實現(xiàn)讀寫ini配置文件的示例代碼

    C++實現(xiàn)讀寫ini配置文件的示例代碼

    配置文件的讀取是每個程序必備的功能,配置文件的格式多種多樣,例如:ini格式、json格式、xml格式等。其中屬ini格式最為簡單,且應(yīng)用廣泛。本文和大家分享了C++讀寫ini配置文件的方法,需要的可以參考一下
    2023-05-05

最新評論

涞源县| 榆中县| 新源县| 淮滨县| 罗平县| 东城区| 侯马市| 无锡市| 依兰县| 昌图县| 松溪县| 行唐县| 台南县| 泾阳县| 平江县| 莱芜市| 阿拉善右旗| 穆棱市| 澜沧| 靖西县| 安义县| 苗栗市| 博湖县| 大新县| 集安市| 大邑县| 怀宁县| 民勤县| 三台县| 闵行区| 临颍县| 神木县| 荣成市| 沾益县| 吴堡县| 股票| 都昌县| 井研县| 伊吾县| 合肥市| 渝中区|