sockaddr_in结构体详解

转载 2016年08月29日 11:52:42
sockaddr_in(在netinet/in.h中定义):
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 */
};
struct in_addr {
unsigned long s_addr;
};

typedef struct in_addr {
union {
            struct{
                        unsigned char s_b1,
                        s_b2,
                        s_b3,
                        s_b4;
                        } S_un_b;
           struct {
                        unsigned short s_w1,
                        s_w2;
                        } S_un_w;
            unsigned long S_addr;
          } S_un;
} IN_ADDR;

sin_family指代协议族,在socket编程中只能是AF_INET
sin_port存储端口号(使用网络字节顺序)
sin_addr存储IP地址,使用in_addr这个数据结构
sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。
s_addr按照网络字节顺序存储IP地址

sockaddr_in和sockaddr是并列的结构,指向sockaddr_in的结构体的指针也可以指向
sockadd的结构体,并代替它。也就是说,你可以使用sockaddr_in建立你所需要的信息,
在最后用进行类型转换就可以了bzero((char*)&mysock,sizeof(mysock));//初始化
mysock结构体名
mysock.sa_family=AF_INET;
mysock.sin_addr.s_addr=inet_addr("192.168.0.1");
……
等到要做转换的时候用:
(struct sockaddr*)mysock

相关文章推荐

sockaddr与sockaddr_in结构体简介

  struct sockaddr {unsigned  short  sa_family;     /* address family, AF_xxx */char  sa_data[14];   ...
  • lihengzk
  • lihengzk
  • 2006年11月26日 16:46
  • 81034

整理:Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解

sockaddr struct sockaddr { unsigned  short  sa_family;     /* address family, AF_xxx */ char ...

sockaddr_in , sockaddr , in_addr区别Socket编程函数集(非常有用)

一、sockaddr和sockaddr_in在字节长度上都为16个BYTE,可以进行转换 struct   sockaddr   {                   unsigned   sh...
  • maopig
  • maopig
  • 2013年12月07日 22:13
  • 22607

socket编程——sockaddr_in结构体操作

sockaddr结构体 sockaddr的缺陷:sa_data把目标地址和端口信息混在一起了 struct sockaddr {        unsigned short sa...

socket编程——sockaddr_in结构体操作

socket编程——sockaddr_in结构体操作 sockaddr结构体 sockaddr的缺陷:sa_data把目标地址和端口信息混在一起了 struct sockad...
  • kirawoo
  • kirawoo
  • 2012年04月17日 14:44
  • 233

socket编程——sockaddr_in结构体操作

原文地址:http://blog.sina.com.cn/s/blog_6151984a0100etj1.html       sockaddr结构体 sockaddr的缺陷:sa_data把目...

socket编程——sockaddr_in结构体操作

http://blog.sina.com.cn/s/blog_6151984a0100etj1.html     sockaddr结构体 sockaddr的缺陷:sa_data把目标地址和端口信息...

sockaddr与sockaddr_in结构体简介

struct sockaddr 是一个通用地址结构,这是为了统一地址结构的表示方法,统一接口函数,使不同的地址结构可以被bind() , connect() 等函数调用;struct sockaddr...
  • skc361
  • skc361
  • 2013年07月04日 23:17
  • 364

sockaddr与sockaddr_in结构体详细讲解

struct sockaddr {unsigned short sa_family;     /* address family, AF_xxx */char sa_data[14];        ...
  • vlily
  • vlily
  • 2011年07月18日 10:42
  • 367

sockaddr与sockaddr_in结构体简介

sockaddr与sockaddr_in结构体简介 2007-09-01 20:56 【标   题】:sockaddr与sockaddr_in结构体简介 【关键字】:so...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sockaddr_in结构体详解
举报原因:
原因补充:

(最多只允许输入30个字)