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

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

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

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

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

定義函數(shù):

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

函數(shù)說明:socket()用來建立一個新的socket, 也就是向系統(tǒng)注冊, 通知系統(tǒng)建立一通信端口. 參數(shù)domain 指定使用何種的地址類型, 完整的定義在/usr/include/bits/socket.h 內(nèi), 底下是常見的協(xié)議:
   PF_UNIX/PF_LOCAL/AF_UNIX/AF_LOCAL UNIX 進程通信協(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è)余無線AX. 25 協(xié)議
   PF_ATMPVC/AF_ATMPVC 存取原始 ATM PVCs
   PF_APPLETALK/AF_APPLETALK appletalk (DDP)協(xié)議
   PF_PACKET/AF_PACKET 初級封包接口

參數(shù) type 有下列幾種數(shù)值:
1、SOCK_STREAM 提供雙向連續(xù)且可信賴的數(shù)據(jù)流, 即TCP. 支持 OOB 機制, 在所有數(shù)據(jù)傳送前必須使用connect()來建立連線狀態(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ū)動程序直接通信. protocol 用來指定socket 所使用的傳輸協(xié)議編號, 通常此參考不用管它, 設(shè)為0 即可.

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

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

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

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

定義函數(shù):

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

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

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

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

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ù)處理過, 當有連線進來時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)存不足.

相關(guān)文章

  • c語言之如何求e的近似值

    c語言之如何求e的近似值

    這篇文章主要介紹了c語言之如何求e的近似值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • C++實現(xiàn)矩陣對稱正交化的示例代碼

    C++實現(xiàn)矩陣對稱正交化的示例代碼

    這篇文章主要介紹了C++實現(xiàn)矩陣對稱正交化,分為python代碼和C++的eigen庫實現(xiàn)代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • C++產(chǎn)生隨機數(shù)的實現(xiàn)代碼

    C++產(chǎn)生隨機數(shù)的實現(xiàn)代碼

    本篇文章是對C++中產(chǎn)生隨機數(shù)的實現(xiàn)代碼進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++?Boost?Lambda表達式詳解

    C++?Boost?Lambda表達式詳解

    Lambda?表達式(lambda?expression)是一個匿名函數(shù),Lambda表達式基于數(shù)學中的λ演算得名。本文就來為大家詳細講講C++中Lambda表達式的使用,需要的可以參考一下
    2022-11-11
  • C++ 程序拋出異常后執(zhí)行順序說明

    C++ 程序拋出異常后執(zhí)行順序說明

    這篇文章主要介紹了C++ 程序拋出異常后執(zhí)行順序說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • C語言 用while循環(huán)求和的平均值操作

    C語言 用while循環(huán)求和的平均值操作

    這篇文章主要介紹了C語言 用while循環(huán)求和的平均值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • OpenCV實現(xiàn)智能視頻監(jiān)控

    OpenCV實現(xiàn)智能視頻監(jiān)控

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)智能視頻監(jiān)控,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • C語言實現(xiàn)2048游戲

    C語言實現(xiàn)2048游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)2048小游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C++整數(shù)常量的前綴和后綴的示例代碼

    C++整數(shù)常量的前綴和后綴的示例代碼

    這篇文章主要介紹了C++整數(shù)常量的前綴和后綴,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • C語言連接并操作Sedna XML數(shù)據(jù)庫的方法

    C語言連接并操作Sedna XML數(shù)據(jù)庫的方法

    這篇文章主要介紹了C語言連接并操作Sedna XML數(shù)據(jù)庫的方法,實例分析了C語言操作XML文件的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06

最新評論