Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89710
  • 博文数量: 44
  • 博客积分: 1920
  • 博客等级: 上尉
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-06 09:13
文章分类

全部博文(44)

文章存档

2011年(1)

2009年(43)

我的朋友

分类: LINUX

2009-07-20 19:02:02

1、inet_addr():
简述:将一个点间隔地址转换成一个in_addr,返回一网络字节顺序表示的Internet地址。
使用:server_addr.sin_addr.s_addr = inet_addr("192.168.0.10");

2、inet_aton()
将字符串表示的网络地址转换为该地址数值的整数表示,返回的数字总是按照网络字节顺序的。

inet_addr与inet_aton的区别:
inet_aton认为255.255.255.255是无效的,不能对这个地址操作。而inet_addr可以。

3、inet_ntoa()
给定一个数字网络地址,返回作为字符串的该地址的指针。

4、htons或htonl
将以主机字节顺序的数转换为一网络字节书序表示的数。
htons转16位的(host to network short), htonl转32位的(host to network long);
通常用法:
    server_addr.sin_port = htons(2222);   //端口号
    server_addr.sin_addr.s_addr = htonl(INADDR_ANY); //INADDR_ANY=0所以等效于
    server_addr.sin_addr.s_addr = INADDR_ANY;
INADDR_ANY: 表示任意的IP地址,一般为内核指定的,大多数系统取0。
htonl()简单说是一个把本机IP转化为网络协议中规定的格式的函数.也就是所谓的大端模式或小端模式。

5、指定IP地址和端口号:
localAddr.sin_addr.s_addr = inet_addr("192.168.0.124");
localAddr.sin_port = htons(80);

6、如果用户机器只有一个IP地址,则可以使用如下代码绑定socket到默认的IP地址.
addr.sin_addr.s_un.s_addr = INADDR_ANY;

7、对于TCP类型的socket而言,通常只有服务器程序需要调用bind函数绑定具体的端口号,对于客户端程序,通常不需要指定端口号,因为Winsock会自动为该socket指定一个随机空闲的端口号.
阅读(1094) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~