Linux操作系统下Socket编程地址结构介绍

运维 系统运维
Linux下的网络通信程序,一定要和一个结构打交道,这个结构就是socket address。比如bind、connect等等函数都要使用socket address结构。

Linux下的网络通信程序,一定要和一个结构打交道,这个结构就是socket address。比如bind、connect等等函数都要使用socket address结构。理解socket address时我们要明白,其实在linux下针对于不同的socket domain定义了一个通用的地址结构struct sockaddr,它的具体定义为:

{
unsigned short int sa_family;
char sa_data[14];
}

{unsigned short int sa_family;

char sa_data[14];}

struct sockaddr

其中,sa_family为调用socket()函数时的参数domain参数,sa_data为14个字符长度存储。针对于不同domain下的socket,通用地址结构又对应了不同的定义,例如一般的AF_INET domain下,socket address的定义如下:

struct sockaddr_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;
}

struct sockaddr_in

{unsigned short int sin_family;
uint16_t sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[8];//未使用}

struct in_addr{

auint32_t s_addr;}

当socket的domain不同于AF_INET时,具体的地址定义又是不同的,但是整个地址结构的大小、容量都是和通用地址结构一致的。

【编辑推荐】

  1. Linux网络中ADSL连接故障排除方法
  2. Linux下使用网站主机作为加密代理服务器
  3. Mac和Linux将面临新的漏洞攻击
责任编辑:赵宁宁 来源: 赛迪网
相关推荐

2011-01-04 14:36:39

LinuxGTK编程

2009-06-25 08:53:03

Linux操作系统

2009-12-11 16:53:52

Linux操作系统

2022-07-18 05:59:18

Linux目录结构操作系统

2011-01-04 15:36:45

linux特征

2009-12-22 13:05:15

Linux sysfs

2011-01-04 18:15:21

2014-07-29 10:12:38

LinuxC语言编程

2009-06-21 13:50:03

Linux隐藏文件

2011-01-05 10:32:31

linuxqq

2009-07-03 06:55:33

Linux

2009-06-29 08:38:14

Linux操作系统

2009-12-09 17:25:19

Linux操作系统

2009-09-01 09:20:24

Linux操作系统声音设备编程实例

2009-12-21 10:55:29

Fedora 7 li

2009-10-27 14:27:28

Linux配置大量IP

2020-12-29 16:39:01

Linux代码命令

2010-04-14 18:23:06

Unix操作系统

2010-04-09 14:47:55

Unix操作系统

2010-04-23 16:08:24

Aix操作系统
点赞
收藏

51CTO技术栈公众号