色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 網絡編程常用函數接口

網絡編程常用函數接口 時間:2014-10-21      來源:未知

通用結構體:

struct sockaddr {
           sa_family_t sa_family; /* unsigned short , 指定了通信協議家族 */
        char sa_data[14];
        };

IPV4網絡通信地址結構體:

struct sockaddr_in {
                pa_family_t sin_family;
                port_t sin_port;
                struct in_addr {
                        unsigned int s_addr;
                }sin_addr;
        };

UNIX本地通信地址結構體:

struct sockaddr_un {
                sa_family_t sun_family;
                char sun_path[108];
        };

函數名:int socket (int domain, int type, int protocl)

功能:打開一個套接字,并返回一個相關的文件描述符。

返回值:成功,一個新的文件描述符;失敗, -1;

參數表:

int domain, 通信域:
        AF_INET | AF_INET6 | AF_UNIX | AF_PACKET
        int type, 套接字類型:
                SOCK_STREAM 流式套接字
                SOCK_DGRAM 數據報套接字
                SOCK_RAW 原始套接字
        int protocl, 協議(在原始套接字中根據需要選擇使用,流式或數據報套接字中為 0)

函數名: int bind(int sockfd, const struct sockaddr * addr, socklen_t addrlen);

功能:為一個打開的套接字,綁定一個地址(IP+PORT)。

返回值:成功, 0;失敗, -1;

參數表:

int sockfd, 通過socket打開并返回的文件描述符。
        const struct sockaddr * addr, 通用結構體地址,具體根據通信域選擇相關的地址格式。
        socklen_t addrlen, 實際地址結構體的大小。

函數名: int sendto(int sockfd, void *buff, size_t size, int flag, const struct sockaddr *addr, socklen_t addrlen);

功能:向一個指定的目標主機發送數據包。

返回值:成功,實際發送的字節數;失敗, -1;

參數表:

int sockfd, 通過socket打開并返回的文件描述符。
        void *bufff, 即將發送的數據。
        size_t size,數據大小。
        int flag, 發送標志位(阻塞、非阻塞等,如果無特殊要求則設置為0)。
        const struct sockaddr * addr, 目標主機的地址結構體(IP+PORT)。
        socklen_t addrlen, 目標主機地址結構體大小。

函數名: int recvfrom(int sockfd, void *buff, size_t size, int flag, struct sockaddr *addr, socklen_t *addrlen);

功能:接受一個數據包,并帶回數據包的來源地址。

返回值:成功,實際接收的字節數;失敗, -1;對方關閉, 0;

參數表:

int sockfd, 通過socket打開并返回的文件描述符。
        void *bufff, 接受數據的緩沖區。
        size_t size,緩沖區大小。
        int flag, 接收標志位(阻塞、非阻塞等,如果無特殊要求則設置為0)。
        struct sockaddr * addr, 用來保存數據源主機的地址的結構體(IP+PORT)。
        socklen_t *addrlen, 期望接收的數據源主機的地址結構體大。ㄔ谑褂们坝捎脩糇约撼跏蓟;一旦該函數調用結束,該變量會被修改為實際大小。

函數名: int listen(int sockfd, int backlog);

功能:將一個經過bind的套接字置為被動狀態,以便將來使用accept接受新的請求。

返回值:成功, 0;失敗, -1;

參數表:

int sockfd, 通過socket創建,并通過bind后的套接字描述符。
        int backlog, 握手請求隊列的大值。

函數名: int accept(int sockfd, struct sockaddr * addr, socklen_t addrlen);

功能:接受一個握手請求,并返回一個新的文件描述符。

返回值:成功,新的文件描述符(用來收發數據的通道);失敗, -1;

參數表:

int sockfd, 經過socket創建,bind后并且listen后的文件描述符。
        struct sockaddr *addr, 用來帶回握手請求方的地址結構體。
        socklen_t addrlen, 期望接收的對方的地址大小,該值會被修改為實際大小,調用者需提前初始化。

函數名: int select(int nfds, fd_set *rdfds, fd_set *wrfds, fd_set *exceptfds, struct timeval * timval);

功能:在多路IO復用模型中,負責檢測多個文件描述符資源。但沒有資源可操作時,進程阻塞;有資源操作時返回可操作的資源個數。

返回值:成功,資源個數;失敗, -1;超時, 0;

參數表:

int nfds, 檢測的大描述符值+1.
        fd_set *rdfds, 希望監測的讀資源描述符集合。
        fd_set *wrfds, 希望監測的寫資源描述符集合。
        fd_set *wrfds, 希望監測的其他資源描述符集合。
        struct timeval *timval, 超時監測,設定秒+微秒。

select相關函數:

FD_SET(int fd, fd_set * fds): 將描述加入集合中。
        FD_CLR(int fd, fd_set *fds): 將指定描述從集合中移除。
        FD_ZERO(fd_set *fds): 清空一個描述符集合。
        FD_ISSET(Iint fd, fd_set *fds): 測試一個描述符是否在集合中(測試該描述符資源是否可操作);

其他函數接口:

int send(int sockfd, const void *buff, size_t size, int flag);
        int recv(int sockfd, void *buff, size_t size, int flag);
        getpeername(int connfd, struct sockaddr *addr, socklen_t *addrlen);
        getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
        setsockopt(int level, int optname, const void *optval, socklen_t optlen);
        short htons(short );
        int htonl(int);
        short ntohs(short);
        int ntohl(int);

上一篇:java中的匿名內部類總結

下一篇:野指針和空指針的兩個小點

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 欧美最肥BBW毛| 男人天堂网站 | 亚洲第一a| 双腿张开被9个黑人调教影片 | 最近2019中文字幕大全视频10 | 精品国产精品人妻久久无码五月天 | 亚洲欧洲无码专区AV | 国产在线无码视频一区二区三区 | 性一交一乱一乱一视频 | 亚洲国产精品va在线观看麻豆 | 成人片黄网站色大片免费观看 | 美女啪啪网站又黄又免费 | 国产成人综合精品无码 | 亚洲AV成人无码久久精品老人 | 久久久无码精品亚洲日韩啪啪网站 | 日本丰满熟妇videossexhd 日韩性公交车上xxhd | 好男人好资源神马在线观看 | oldgraanny日本老熟妇 | 欧美内射bbw偷拍 | 最好看免费观看高清视频大全国语 | 在线观看涩涩视频 | 综合综合综合综合综合网 | 国产精品亚洲色婷婷99久久精品 | 国产台湾无码av片在线观看 | www.日本农妇.无码精品 | 最近高清中文在线国语字幕 | 永久黄网站色视频免费观看 | 欧美精品第一 | 在线播放免费人成毛片软件 | 69精品人人人人人人人人人 | 久久久久无码精品亚洲日韩 | 最近高清中文在线观看国语字幕7 | 成年在线网站免费观看无广告 | 午夜精品久久久内射近拍高清 | 亚洲中文无码av永久伊人 | 亚洲日韩国产二区无码 | 日韩女优网站 | 色诱福利视频网址 | 亚洲成A人片在线观看无码3D | 无套内谢少妇毛片a片免费 在线播放偷拍一区精品小说 | 免费啪视频在线观看视频日本 |