zoukankan      html  css  js  c++  java
  • sockaddr_in结构体简介

    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

  • 相关阅读:
    tomcat内存调优
    loadrunner 商城项目随机选书
    loadrunner 脚本调试之添加日志
    Macaca自动化测试工具环境搭建
    python selenium 自动化测试图片识别1
    SQL——数据插入
    SQL集合操作
    SQL——多表查询
    SQL简单查询操作
    PV操作——实力模型2
  • 原文地址:https://www.cnblogs.com/myyan/p/4708060.html
Copyright © 2011-2022 走看看