linux socket编程记录2

本文介绍了TCP/IP套接字编程中的寻址方式与字节顺序。详细解析了sockaddr_in结构体及其成员变量sin_addr的定义,并给出了设置IP地址的具体实例。此外,还概述了网络字节顺序与主机字节顺序的区别及转换函数。

1、寻址方式

套接字需要在各种网络协议中使用,为了区分程序使用的网络协议必须使用同一的寻址方式。TCP/IP地址族中统一的套接字地址结构如下

View Code
1 struct sockaddr_in
2 {
3 short sin_family; // 协议族
4 unsigned short sin_port; // 端口
5 struct in_addr sin_addr; // IP地址
6 char sin_zero[8]; // 备用
7 };

结构成员变量sin_addr表示32位的IP地址结构,定义如下

 

View Code
 1 struct in_addr
2 {
3 union
4 {
5 struct
6 {
7 unsigned char s_b1, s_b2, s_b3, s_b4;
8 }S_un_b;
9 struct
10 {
11 unsingned short s_w1, s_w2;
12 }S_un_w;
13 unsigned long S_addr;
14 }S_un;
15 };

通常,网络编程中使用1个u_long型的字符描述IP地址即可

 

View Code
1 sockaddr_in addr;
2 addr.sin_addr.s_addr = inet_addr("192.168.1.1");

2、字节顺序

socket编程中,传输数据的字节顺序以网络字节顺序和主机字节顺序为主。网络字节顺序将数据中最重要的字节首先存储,主机字节顺序将不重要的数据首先存储。几个字节顺序转换的函数如下

 

View Code

转载于:https://www.cnblogs.com/4546c/archive/2012/01/14/2322211.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值