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

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

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

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

#include <sys/socket.h>

定義函數(shù):

int listen(int s, int backlog);

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

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

附加說明: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語言bind()函數(shù):對(duì)socket定位
頭文件:

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

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

函數(shù)說明:bind()用來設(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)文章

最新評(píng)論

湖北省| 通化县| 高青县| 县级市| 黄陵县| 张家川| 黔南| 房山区| 泰安市| 当涂县| 江源县| 沽源县| 台东县| 镇远县| 北流市| 定陶县| 临城县| 绿春县| 唐河县| 桦川县| 疏附县| 凤山市| 九龙坡区| 扶沟县| 密云县| 公安县| 广西| 沾化县| 哈巴河县| 封开县| 鲜城| 紫金县| 沧州市| 淮阳县| 青海省| 溧阳市| 东兰县| 新竹市| 石狮市| 临湘市| 黄陵县|