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

C語(yǔ)言中等待socket連接和對(duì)socket定位的方法

 更新時(shí)間:2015年09月06日 11:00:25   投稿:goldensun  
這篇文章主要介紹了C語(yǔ)言中等待socket連接和對(duì)socket定位的方法,分別為listen()函數(shù)和bind()函數(shù)的用法,需要的朋友可以參考下

C語(yǔ)言listen()函數(shù):等待連接
頭文件:

#include <sys/socket.h>

定義函數(shù):

int listen(int s, int backlog);

函數(shù)說(shuō)明:listen()用來(lái)等待參數(shù)s 的socket 連線. 參數(shù)backlog 指定同時(shí)能處理的最大連接要求, 如果連接數(shù)目達(dá)此上限則client 端將收到ECONNREFUSED 的錯(cuò)誤. Listen()并未開(kāi)始接收連線, 只是設(shè)置socket 為listen 模式, 真正接收client 端連線的是accept(). 通常listen()會(huì)在socket(), bind()之后調(diào)用, 接著才調(diào)用accept().

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

附加說(shuō)明:listen()只適用SOCK_STREAM 或SOCK_SEQPACKET 的socket 類型. 如果socket 為AF_INET 則參數(shù)backlog 最大值可設(shè)至128.

錯(cuò)誤代碼:
   EBADF 參數(shù)sockfd 非合法socket 處理代碼
   EACCESS 權(quán)限不足
   EOPNOTSUPP 指定的socket 并未支援listen 模式.

C語(yǔ)言bind()函數(shù):對(duì)socket定位
頭文件:

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

定義函數(shù):int bind(int sockfd, struct sockaddr * my_addr, int addrlen);

函數(shù)說(shuō)明:bind()用來(lái)設(shè)置給參數(shù)sockfd 的socket 一個(gè)名稱. 此名稱由參數(shù)my_addr 指向一sockaddr 結(jié)構(gòu),對(duì)于不同的socket domain 定義了一個(gè)通用的數(shù)據(jù)結(jié)構(gòu)

struct sockaddr
{
  unsigned short int sa_family;
  char sa_data[14];
};

1、sa_family 為調(diào)用socket()時(shí)的domain 參數(shù), 即AF_xxxx 值.
2、sa_data 最多使用14 個(gè)字符長(zhǎng)度.

此sockaddr 結(jié)構(gòu)會(huì)因使用不同的socket domain 而有不同結(jié)構(gòu)定義, 例如使用AF_INET domain,其socketaddr 結(jié)構(gòu)定義便為

struct socketaddr_in
{
  unsigned short int sin_family;
  uint16_t sin_port;
  struct in_addr sin_addr;
  unsigned char sin_zero[8];
};

struct in_addr
{
  uint32_t s_addr;
};

1、sin_family 即為sa_family
2、sin_port 為使用的port 編號(hào)
3、sin_addr. s_addr 為IP 地址 sin_zero 未使用.
參數(shù) addrlen 為sockaddr 的結(jié)構(gòu)長(zhǎng)度.

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

錯(cuò)誤代碼:
1、EBADF 參數(shù)sockfd 非合法socket 處理代碼.
2、EACCESS 權(quán)限不足
3、ENOTSOCK 參數(shù)sockfd 為一文件描述詞, 非socket.

相關(guān)文章

  • C語(yǔ)言圣誕樹(shù)的實(shí)現(xiàn)示例

    C語(yǔ)言圣誕樹(shù)的實(shí)現(xiàn)示例

    本篇主要介紹了C語(yǔ)言圣誕樹(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • C++實(shí)現(xiàn)掃雷小游戲

    C++實(shí)現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語(yǔ)言/C++如何生成隨機(jī)數(shù)

    C語(yǔ)言/C++如何生成隨機(jī)數(shù)

    這篇文章主要介紹了C語(yǔ)言/C++如何生成隨機(jī)數(shù),C語(yǔ)言/C++產(chǎn)生隨機(jī)數(shù)主要用到的是rand()函數(shù), srand()函數(shù),C語(yǔ)言/C++里沒(méi)有自帶的random(int number)函數(shù),如何解決?感興趣的小伙伴們可以參考一下
    2016-04-04
  • 最新評(píng)論