linux+广播程序,Linux系统下广播程序制作介绍(上) (3)

本文介绍了在套接字编程中常用的数据结构,包括struct sockaddr和struct sockaddr_in。struct sockaddr用于存储地址信息,而struct sockaddr_in提供了更方便的方式来访问套接字的地址和端口。特别地,sin_zero字段应使用bzero()或memset()初始化为全0。此外,这两个结构体之间可以通过指针转换相互映射。
摘要由CSDN通过智能技术生成

数据结构

下面我们要讨论使用套接口编写程序可能要用到的数据结构。

首先是套接口描述符。一个套接口描述符只是一个整型的数值: i n t。

第一个数据结构是struct sockaddr,这个数据结构中保存着套接口的地址信息。

struct sockaddr {

unsigned short sa_family; /* address family, AF_xxx */

char sa_data[14]; /* 14 bytes of protocol address */

} ;

sa_family 中可以是其他的很多值,但在这里我们把它赋值为“ AF_INET”。sa_data包括一个目的地址和一个端口地址。

你也可以使用另一个数据结构sockaddr_in,如下所示:

struct sockaddr_in {

short int sin_family; /* Address family */

unsigned short int sin_port; /* Port number */

struct in_addr sin_addr; /* Internet address */

unsigned char sin_zero[8]; /* Same size as struct sockaddr */

} ;

这个数据结构使得使用其中的各个元素更为方便。要注意的是sin_zero应该使用bzero() 或者memset ( )而设置为全0。另外,一个指向sockaddr_in数据结构的指针可以投射到一个指向数据结构sockaddr的指针,反之亦然。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值