1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通信函数

 bind 函数   bind 函数用于将套接字绑定到一个已知的地址上。   语法:   int bind ( SOCKET s,const struct sockaddr FAR* name, int namelen);   参数说明:   s:是一个套接字。   name :是一个sockaddr 结构指针,该结构中包含了要结合的地址和端口号。   namelen :确定name 缓冲区的长度。   返回值:如果函数执行成功,返回值为0 ,否则为SOCKET_ERROR 。   在定义一个套接字后,需要调用bind 函数为其指定本机地址、协议和端口号。   下面的代码创建一个套接字s ,将其绑定到3010 端口上。   int port = 3010;   SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);   sockaddr_in addr;   addr.sin_family = AF_INET; // 内部网络协议TCP\UDP 等   addr.sin_port = htons(port); //端口号   addr.sin_addr.s_addr = htonl(INADDR_ANY);   if (SOCKET_ERROR = bind(s,(LPSOCKADDR)addr,sizeof(addr))==0)   {   MessageBox(失败!);   } inet_ntop  Linux 下inet_pton 和inet_ntop 这2 个IP 地址转换函数,可以在将IP 地址在“点分十进制” 和“整数”之间转换。而且,这2 个函数能够处理ipv4 和ipv6 。算是比较新的函数了。   inet_pton 函数原型如下[将“点分十进制” - “整数”]   #include sys/types.h   #include sys/socket.h   #include arpa/inet.h   int inet_pton(int af, const char *src, void *dst);   这个函数转换字符串到网络地址,第一个参数af 是地址族,转换后存在dst 中。   inet_pton 是inet_addr 的扩展,支持的多地址族有下列:   af = AF_INET   src 为指向字符型的地址,即ASCII 的地址的首地址(ddd.ddd.ddd.ddd 格式的),函数 将该地址   转换为in_addr 的结构体,并复制在*dst 中。   af =AF_INET6   src 若为指向IPV6 的地址,函数将该地址转换为in6_addr 的结构体,并复制在*dst 中。   如果函数出错将返回一个负值,并将errno 设置为EAFNOSUPPORT ,如果参数af 指 定的地址族和src 格式不对,函数将返回0 。   inet_ntop 函数原型如下[将“整数” - “点分十进制”]   #include sys/types.h   #include sys/socket.h   #include arpa/inet.h   const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt);   这个函数转换网络二进制结构到ASCII 类型的地址,参数的作用和上面相同,只是多 了一个参数socklen_t cnt,他是所指向缓存区dst 的大小,避免溢出,如果缓存区太小无法存 储地址的值,则返回一个空指针,并将errno 置为ENOSPC 。   下面是例程:   #include stdio.h   #include stdlib.h   #include string.h   #include unistd.h   #include sys/socket.h   #include netinet/in.h   int main (void)   {   char IPdotdec[20]; //存放点分十进制IP 地址   struct in_addr s; // IPv4 地址结构体   // 输入IP 地址   printf(Please input IP address: );   scanf(%s, IPdotdec);   // 转换   inet_pton(AF_INET, IPdotdec,

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档