程序会用到以下结构体(结构体都有说明)

struct in_addr      //用来保存以十六进制表示的IP地址
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;

struct sockaddr结构类型是用来保存socket信息的:

struct sockaddr {   
              unsigned short    sa_family;                    
              char sa_data[14];                                           
               };
             sa_family一般为AF_INET,代表Internet(TCP/IP)地址族;
              sa_data则包含该socket的IP地址和端口号。
另外更有一种结构类型:   
struct sockaddr_in {    
              short int sin_family;                    
            unsigned short int sin_port;                 
              struct in_addr sin_addr;                    
              unsigned char sin_zero[8];                 

};  

这个结构更方便使用。sin_zero用来将sockaddr_in结构填充到和struct sockaddr同样的长度,能用bzero()或memset()函数将其置为零。指向sockaddr_in的指针和指向sockaddr的指针能相互转换,这意味着如果一个函数所需参数类型是sockaddr时,你能在函数调用的时候将一个指向sockaddr_in的指针转换为指向sockaddr的指针;或相反。

http://blog.sina.com.cn/s/blog_723ffdf20100ox2d.html

简析struct in_addr ,struct sockadd相关推荐

  1. NET中class与struct的区别简析

    在没有class的面向过程的编程时代,struct是封装数据的利器,没它不行.但自从面向对象编程以来,class横空出世,大家高呼着"万事万物皆对象",把class含在嘴里,握在手 ...

  2. struct in_addr 结构体

    struct in_addr 结构体: struct in_addr {in_addr_t s_addr; }; 表示一个32位的IPv4地址. in_addr_t 一般为32位的unsigned i ...

  3. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  4. 简析平衡树(三)——浅谈Splay

    前言 原本以为\(Treap\)已经很难了,学习了\(Splay\),我才知道,没有最难,只有更难.(强烈建议先去学一学\(Treap\)再来看这篇博客) 简介 \(Splay\)是平衡树中的一种,除 ...

  5. 基于libmad库的MP3解码简析

    基于libmad库的MP3解码简析  MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3). ...

  6. Python源码学习:内建类型简析并简析int对象

    Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 上一篇文章中已经大致分析了下,Python的启动执行流程,现在我们分析一下Pytho ...

  7. Android Handler与Looper原理简析

    一直感觉自己简直就是一个弱智,最近越来越感觉是这样了,真的希望自己有一天能够认同自己,认同自己. 本文转载于:https://juejin.im/post/59083d7fda2f60005d14ef ...

  8. grpc通信原理_gRPC原理简析

    gRPC原理简析 gRPC是由谷歌提出并开发的RPC协议,gRPC提供了一套机制,使得应用程序之间可以进行通信. 降级开发者的使用门槛,屏蔽网络协议,调用对端的接口就像是调用本地的函数一样.而gRPC ...

  9. uboot源码分析(1)uboot 命令解析流程简析

    uboot 命令解析流程简析 uboot正常启动后,会调用main_loop(void)函数,进入main_loop()之后,如果在规定的时间(CONFIG_BOOTDELAY)内,没有检查到任何按键 ...

  10. Linux信号处理简析

    1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺. 2. 分析背景 本文基于 ARM32 架构 + Linux 4.14 内核源码进行分析. 3. 信号概述 3 ...

最新文章

  1. Neo4j和Titan的对比
  2. 【atcoder】GP 2 [agc036C]
  3. 18 Context与组合的应用场景与使用问题
  4. P1742 最小圆覆盖
  5. Django-内置用户系统
  6. 乾通嗖嗖抢先布局多元化用工 实现全流程数智化人力管理
  7. linux docker安装svn,使用docker镜像搭建svn+Apache环境
  8. jquery ajax 跨域_Laravel 的跨域问题解决方案
  9. 分布式缓存原理——一致性hash算法(hash环)、Hash槽
  10. 哨兵2号波段_Redis 哨兵使用以及在 Laravel 中的配置
  11. Java三种类型之间的转换方法:Date、String、Calendar类型之间的转化
  12. 【LeetCode】【数组】题号:*283,移动零
  13. 五、hive-1.2.1安装
  14. 微积分:常用公式、微分方程、级数
  15. IDEA 自定义注释
  16. 多传感器数据融合简介(转)
  17. 学习使用md+Typora记笔记的笔记
  18. python中文社区-python-chinese.GitHub.io
  19. Linux设备模型之platform设备
  20. 这俩 AI 项目贼有意思

热门文章

  1. 管理感悟:先做难度大的工作
  2. 华为、小米手机收不到推送消息的LOG
  3. 互联网是由许多计算机组成的网络,互联网运行原理:计算机网络是由许多计算机组成的...
  4. python julia go_Python的四个挑战者:Swift、Go、Julia、R
  5. 狂打气球html5游戏_4399h5游戏_企业团建活动小游戏:合力吹气球
  6. python圣诞树代码_用Python画一棵带音乐的雪夜圣诞树
  7. illegal instruction问题窥探
  8. 安防在智能家居中扮演什么角色?
  9. 省市联动_简单的Demo,适用于各种二级菜单联动
  10. 肉肉好走,愿你在异界依旧快乐活泼