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

ZDNet软件频道 时间:2009-12-02 作者: | 赛迪网 我要评论()
本文关键词:Linux
理解socket address时我们要明白,其实在linux下针对于不同的socket domain定义了一个通用的地址结构struct sockaddr,它的具体定义为:针对于不同domain下的socket,通用地址结构又对应了不同的定义,例如一般的AF_INET domain下,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];

  }

  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;

  }

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


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134