一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C語言設置和取得socket狀態的相關函數用法

C語言設置和取得socket狀態的相關函數用法

2021-03-11 15:02C語言教程網 C/C++

這篇文章主要介紹了C語言設置和取得socket狀態的相關函數用法,分別是setsockopt()函數和getsockopt()函數的使用介紹,需要的朋友可以參考下

C語言setsockopt()函數:設置socket狀態
頭文件:

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

定義函數:

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

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

參數 optval 代表欲設置的值, 參數optlen 則為optval 的長度.

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

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

C語言getsockopt()函數:取得socket 狀態
頭文件:

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

定義函數:

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

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

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

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

范例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#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);
}

執行:

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

延伸 · 閱讀

精彩推薦
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
主站蜘蛛池模板: aaaa大片| 动漫美女强行被吸乳做羞羞事 | 2019国内自拍大神视频 | 97热在线| 男人操美女视频 | 99精品视频免费在线观看 | 精品国产中文字幕在线视频 | 国产免费成人在线视频 | 日本免费在线观看 | 国产精品合集久久久久青苹果 | 久久久无码精品无码国产人妻丝瓜 | 亚洲国产货青视觉盛宴 | 96日本xxxxxxxxx70 95在线观看精品视频 | 欧美日韩国内 | 四虎1515hhh co m | 农村美女沟厕嘘嘘被偷看 | 大吊操| 91国内精品线免费播放 | 亚洲欧美国产自拍 | 亚洲男人天堂久久 | 99久久九九 | 国产福利资源网在线观看 | 猛h辣h高h文湿校园1v1 | 毛片在线免费观看网站 | 亚洲国产情侣一区二区三区 | 日韩视频在线精品视频免费观看 | 希岛爱理aⅴ在线中文字幕 午夜综合网 | 欧美日韩在线一区二区三区 | 欧美日韩亚洲另类人人澡 | 亚洲欧洲色图 | ass天天裸妇pics | 亚洲精选在线观看 | 欧美男同互吃gay老头 | 日本大尺度动漫在线观看缘之空 | 日本三级免费观看 | 特黄级 | 色婷婷狠狠 | x8x8在线观看| 毛片一区二区三区提莫影院 | 免费精品视频在线 | 强插美女 |