baronG 发表于 2010-7-19 06:02

学习网络编程的一些小笔记 inet_addr和htons

sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr("127.0.0.1");
service.sin_port = htons(12345);


在学习网络编程的时候 对
inet_addr 和htons不太熟悉 记录一下~

 简述:将一个点间隔地址转换成一个in_addr。

  #include <winsock.h>

  unsigned long PASCAL FAR inet_addr( const struct FAR* cp);

  cp:一个以Internet标准“.”间隔的字符串

 若无错误发生,inet_addr()返回一个无符号长整型数,其中以适当字节顺序存放Internet地址。
如果传入的字符串不是一个合法的Internet地址,如“a.b.c.d”地址中任一项超过255,那么inet_addr()返回INADDR_NONE。在IP只有一部分时(即没有 ”.“ 时),IP的字符串如果只由数字组成,inet_addr()不检查数字是否大于255。

——————————————————————————————————————————————————————

还有
htons 这个函数 转换端口用的-.-

将主机的无符号短整形数转换成网络字节顺序

返回值:
htons()返回一个网络字节顺序的值。
简单地说,htons()就是将一个数的高低位互换


1. Little endian:将低序字节存储在起始地址

这是 主机字节序

2. Big endian:将高序字节存储在起始地址

这是 网络字节序
页: [1]
查看完整版本: 学习网络编程的一些小笔记 inet_addr和htons