C++ sockaddr_in详解

Stella981
• 阅读 770

struct   sockaddr   {
unsigned   short   sa_family;
char   sa_data[14];

};

sa_family是地址家族,一般都是“AF_xxx”的形式。通常大多用的是都是AF_INET,代表地址组

sa_data是14字节协议地址

sockaddr 是通用的socket地址,具体到Internet   socket,用下面的结构,二者可以进行类型转换

  struct   sockaddr_in   {  
                short   int   sin_family;     // Address family 一般来说 AF_INET(地址族)PF_INET(协议族
                unsigned   short   int   sin_port;  //sin_port存储端口号(使用网络字节顺序),在linux下,端口号的范围065535,同时01024范围的端口号已经被系统使用或保留
                struct   in_addr   sin_addr;     //存储IP地址
                unsigned   char   sin_zero[8];  //sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节   
        };  
        struct   in_addr就是32位IP地址。  
        struct   in_addr   {  
                union {
                        struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
                        struct { u_short s_w1,s_w2; } S_un_w;
                        u_long S_addr; //s_addr按照网络字节顺序存储IP地址
                } S_un;

                #define s_addr  S_un.S_addr
        };

点赞
收藏
评论区
推荐文章
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
supervisor使用
_一切测试在centos7下_安装yuminstallysupervisor配置/etc/supervisor.confunix\_http\_server用于让ctl连接,可以给ctl连接设定用户和密码可以开启一个inet\_http\_server,用于web管理,不过使用ctl更安全一些。;Sa
Stella981 Stella981
3年前
Ch04 Socket Names and DNS
五个必要的设定    addressfamily     一般是AF\_INET,IPV6就是AF\_INET6    sockettype     TCP选SOCK\_STREAM,UDP选SOCK\_DGRAM    Protocol     Socket()接口的第三个参数有用到
Wesley13 Wesley13
3年前
Java Volatile理解
参考资料:http://www.google.com/cse?sa.x0&sa.y0&cx010284515138798138769%3Aajbqkpwaapm&ieUTF8&qvolatilegsc.tab0&gsc.qvolatile&gsc.page1(https://www.oschina.net/action/Go
Wesley13 Wesley13
3年前
TCP 远程执行CMD (解决粘包问题) 代码
服务端1fromsocketimport2importsubprocess,json,struct34serversocket(AF_INET,SOCK_STREAM)5server.bind(('127.0.0.1',8081))6server.listen
Wesley13 Wesley13
3年前
CISSP考试指南笔记:4.16 快速提示
Aprotocolisasetofrulesthatdictateshowcomputerscommunicateovernetworks.Theapplicationlayer,layer7,hasservicesandprotocolsrequiredbytheuser’sa
Stella981 Stella981
3年前
Linux下Socket编程实验资料摘录及手记
//服务端//boolcreate();intm\_sock1;//domain:说明我们网络程序所在的主机采用的通讯协族(AF\_UNIX和AF\_INET等).AF\_UNIX只能够用于单一的Unix系统进程间通信,而AF\_INET是针对Internet的,因而可以允许在远程主机之间通信//type:我们
把帆帆喂饱 把帆帆喂饱
1年前
Springboot整合Sa-Token
Springboot整合SaToken导入依赖xml1.33.0org.springframework.bootspringbootstarterdatarediscom.fasterxml.jackson.datatypejacksondatatypej