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

C語(yǔ)言中socket相關(guān)網(wǎng)絡(luò)編程函數(shù)小結(jié)

 更新時(shí)間:2015年09月06日 10:18:38   投稿:goldensun  
這篇文章主要介紹了C語(yǔ)言中socket相關(guān)網(wǎng)絡(luò)編程函數(shù)小結(jié),是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

C語(yǔ)言socket()函數(shù):建立一個(gè)socket通信
頭文件:

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

定義函數(shù):

int socket(int domain, int type, int protocol);

函數(shù)說(shuō)明:socket()用來(lái)建立一個(gè)新的socket, 也就是向系統(tǒng)注冊(cè), 通知系統(tǒng)建立一通信端口. 參數(shù)domain 指定使用何種的地址類型, 完整的定義在/usr/include/bits/socket.h 內(nèi), 底下是常見(jiàn)的協(xié)議:
   PF_UNIX/PF_LOCAL/AF_UNIX/AF_LOCAL UNIX 進(jìn)程通信協(xié)議
   PF_INET?AF_INET Ipv4 網(wǎng)絡(luò)協(xié)議
   PF_INET6/AF_INET6 Ipv6 網(wǎng)絡(luò)協(xié)議
   PF_IPX/AF_IPX IPX-Novell 協(xié)議
   PF_NETLINK/AF_NETLINK 核心用戶接口裝置
   PF_X25/AF_X25 ITU-T X. 25/ISO-8208 協(xié)議
   PF_AX25/AF_AX25 業(yè)余無(wú)線AX. 25 協(xié)議
   PF_ATMPVC/AF_ATMPVC 存取原始 ATM PVCs
   PF_APPLETALK/AF_APPLETALK appletalk (DDP)協(xié)議
   PF_PACKET/AF_PACKET 初級(jí)封包接口

參數(shù) type 有下列幾種數(shù)值:
1、SOCK_STREAM 提供雙向連續(xù)且可信賴的數(shù)據(jù)流, 即TCP. 支持 OOB 機(jī)制, 在所有數(shù)據(jù)傳送前必須使用connect()來(lái)建立連線狀態(tài).
2、SOCK_DGRAM 使用不連續(xù)不可信賴的數(shù)據(jù)包連接
3、SOCK_SEQPACKET 提供連續(xù)可信賴的數(shù)據(jù)包連接
4、SOCK_RAW 提供原始網(wǎng)絡(luò)協(xié)議存取
5、SOCK_RDM 提供可信賴的數(shù)據(jù)包連接
6、SOCK_PACKET 提供和網(wǎng)絡(luò)驅(qū)動(dòng)程序直接通信. protocol 用來(lái)指定socket 所使用的傳輸協(xié)議編號(hào), 通常此參考不用管它, 設(shè)為0 即可.

返回值:成功則返回socket 處理代碼, 失敗返回-1.

錯(cuò)誤代碼:
1、EPROTONOSUPPORT 參數(shù)domain 指定的類型不支持參數(shù)type 或protocol 指定的協(xié)議
2、ENFILE 核心內(nèi)存不足, 無(wú)法建立新的socket 結(jié)構(gòu)
3、EMFILE 進(jìn)程文件表溢出, 無(wú)法再建立新的socket
4、EACCESS 權(quán)限不足, 無(wú)法建立type 或protocol 指定的協(xié)議
5、ENOBUFS/ENOMEM 內(nèi)存不足
6、EINVAL 參數(shù)domain/type/protocol 不合法

C語(yǔ)言connect()函數(shù):建立socket連線
頭文件:

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

定義函數(shù):

int connect(int sockfd, struct sockaddr * serv_addr, int addrlen);

函數(shù)說(shuō)明:connect()用來(lái)將參數(shù)sockfd 的socket 連至參數(shù)serv_addr 指定的網(wǎng)絡(luò)地址. 結(jié)構(gòu)sockaddr請(qǐng)參考bind(). 參數(shù)addrlen 為sockaddr 的結(jié)構(gòu)長(zhǎng)度.

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

錯(cuò)誤代碼:
1、EBADF 參數(shù)sockfd 非合法socket 處理代碼
2、EFAULT 參數(shù)serv_addr 指針指向無(wú)法存取的內(nèi)存空間
3、ENOTSOCK 參數(shù)sockfd 為一文件描述詞, 非socket.
4、EISCONN 參數(shù)sockfd 的socket 已是連線狀態(tài)
5、   ETIMEDOUT 企圖連線的操作超過(guò)限定時(shí)間仍未有響應(yīng).
6、ENETUNREACH 無(wú)法傳送數(shù)據(jù)包至指定的主機(jī).
7、EAFNOSUPPORT sockaddr 結(jié)構(gòu)的sa_family 不正確.
8、EALREADY socket 為不可阻斷且先前的連線操作還未完成.

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

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

定義函數(shù):

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

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

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

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

相關(guān)文章

  • 圖文詳解c/c++中的多級(jí)指針與多維數(shù)組

    圖文詳解c/c++中的多級(jí)指針與多維數(shù)組

    多維數(shù)組與多級(jí)指針是初學(xué)者經(jīng)常感覺(jué)迷糊的一個(gè)地方。超過(guò)二維的數(shù)組和超過(guò)二級(jí)的指針其實(shí)并不多用。但只要掌握一定的方法,理解多級(jí)指針和“多維”數(shù)組完全可以像理解一級(jí)指針和一維數(shù)組那樣簡(jiǎn)單。
    2016-08-08
  • 基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的走迷宮游戲

    基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的走迷宮游戲

    這篇文章主要介紹了基于C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的走迷宮游戲,用到雙向隊(duì)列,方便在運(yùn)行完畢后輸出經(jīng)過(guò)的點(diǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • C++優(yōu)先隊(duì)列的使用小結(jié)

    C++優(yōu)先隊(duì)列的使用小結(jié)

    普通的隊(duì)列是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),元素在隊(duì)列尾追加,而從隊(duì)列頭刪除,在優(yōu)先隊(duì)列中,元素被賦予優(yōu)先級(jí),本文主要介紹了C++優(yōu)先隊(duì)列的使用,感興趣的可以了解一下
    2023-11-11
  • C 語(yǔ)言中strstr函數(shù)實(shí)例詳解

    C 語(yǔ)言中strstr函數(shù)實(shí)例詳解

    這篇文章主要介紹了C 語(yǔ)言中strstr函數(shù)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • C語(yǔ)言判斷數(shù)是否為素?cái)?shù)與素?cái)?shù)輸出

    C語(yǔ)言判斷數(shù)是否為素?cái)?shù)與素?cái)?shù)輸出

    大家好,本篇文章主要講的是C語(yǔ)言判斷數(shù)是否為素?cái)?shù)與素?cái)?shù)輸出,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • VSCODE+cmake配置C++開(kāi)發(fā)環(huán)境的實(shí)現(xiàn)步驟

    VSCODE+cmake配置C++開(kāi)發(fā)環(huán)境的實(shí)現(xiàn)步驟

    這篇文章主要介紹了VSCODE+cmake配置C++開(kāi)發(fā)環(huán)境的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C語(yǔ)言調(diào)用go生成的動(dòng)態(tài)庫(kù)的踩坑過(guò)程解析

    C語(yǔ)言調(diào)用go生成的動(dòng)態(tài)庫(kù)的踩坑過(guò)程解析

    這篇文章主要為大家介紹了C語(yǔ)言調(diào)用go生成的動(dòng)態(tài)庫(kù)的踩坑過(guò)程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • php5系列的apache遠(yuǎn)程執(zhí)行漏洞攻擊腳本

    php5系列的apache遠(yuǎn)程執(zhí)行漏洞攻擊腳本

    這篇文章主要介紹了php5系列的apache遠(yuǎn)程執(zhí)行漏洞攻擊腳本,需要的朋友可以參考下
    2014-06-06
  • C++實(shí)現(xiàn)選擇性排序(SelectionSort)

    C++實(shí)現(xiàn)選擇性排序(SelectionSort)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)選擇性排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語(yǔ)言版掃雷小游戲

    C語(yǔ)言版掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言版的掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評(píng)論

即墨市| 无锡市| 朝阳市| 屏山县| 廉江市| 汝城县| 桃源县| 上蔡县| 岚皋县| 黎平县| 虹口区| 崇礼县| 武定县| 桃源县| 石城县| 潍坊市| 东山县| 霍州市| 泽普县| 荣成市| 吴桥县| 江口县| 万载县| 肥城市| 新竹市| 资阳市| 射阳县| 兰州市| 安远县| 彰化市| 彭泽县| 孝义市| 屏山县| 临汾市| 吉安市| 康马县| 平顺县| 丹寨县| 昌吉市| 清苑县| 鹰潭市|