国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

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

2020-01-26 14:54:25
字體:
供稿:網(wǎng)友

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ù)時會馬上送至標準輸入設(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 的定義正是此值

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 阿拉善盟| 开原市| 礼泉县| 黄浦区| 永仁县| 革吉县| 红原县| 独山县| 额尔古纳市| 宣化县| 揭西县| 曲水县| 博湖县| 祁连县| 旬邑县| 安陆市| 林甸县| 绍兴市| 广灵县| 罗甸县| 大新县| 肇州县| 淮滨县| 吉隆县| 石河子市| 德州市| 合江县| 都安| 木里| 威信县| 湖南省| 沈丘县| 双鸭山市| 栾川县| 花莲市| 灵川县| 遵义市| 库伦旗| 普定县| 合川市| 黑龙江省|