sockaddrc++ SOCKADDR_IN 是什么意思?能通俗的举个类似汽车吃饭之类的例子吗?

sockaddr  时间:2021-07-19  阅读:()

Linux下socket编程的sockaddr_in结构体中的__SOCKADDR_COMMON (sin_);是什么意思

其定义如下: typedef unsigned short int sa_family_t; #define __SOCKADDR_COMMON(sa_prefix) sa_family_t sa_prefix##family 可以看到这就是一个整形变量(2字节),主要的用处是指明地址类型:取值主要是AF_UNIX|AF_INET|AF_INET6|AF_PACKET等等。

由于所有的地址结构体必然有地址类型,因此封装成一个统一的宏。

怎样在C++中使用C的结构体sockaddr

一. 问题描述: 1. 类定义: namespace T {class C{private:struct sockaddr_in* mSrc;}; 2. 编译报错: reference to ‘sockaddr_in’ is ambiguous error: candidates are: struct sockaddr_in communicator.h:14: error: struct T::sockaddr_in 3. 解释:后面再使用sockaddr_in的时候总认为是在namespace T中声明的,导致歧义。

二. 解决办法: 将C中的结构体sockaddr_in在类定义之前前置声明,在之后的使用中只需要像下面这样定义: sockaddr_in *mSrc;(不要加struct关键字) 当然,还有些细节没有搞清楚,先记着,以后补充。





SOCKADDR_IN的参数说明

sin_family指代协议族,在socket编程中只能是AF_INET sin_port存储端口号(使用网络字节顺序),在linux下,端口号的范围0~65535,同时0~1024范围的端口号已经被系统使用或保留。

sin_addr存储IP地址,使用in_addr这个数据结构 sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。

s_addr按照网络字节顺序存储IP地址 sockaddr_in和sockaddr是并列的结构,指向sockaddr_in的结构体的指针也可以指向 sockaddr的结构体,并代替它。

也就是说,你可以使用sockaddr_in建立你所需要的信息, 然后用memset函数初始化就可以了memset((char*)&mysock,0,sizeof(mysock));//初始化 sockaddr_in mysock; memset((char*)&mysock,0,sizeof(mysock)); mysock.sin_family=AF_INET; mysock.sin_port=htons(1234);//1234是端口号 mysock.sin_addr.s_addr=_addr(192.168.0.1); 相关函数:_addr, _aton, _ntoa, htonl, htons, MAKEWORD, WSASocket, WSAHtons……

c++ SOCKADDR_IN 是什么意思?能通俗的举个类似汽车吃饭之类的例子吗?

sockaddr_in这是Socket编程里用到的结构体,Winsock中使用sockaddr_in结构指定IP地址和端口信息 struct sockaddr_in{ short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; } sin_family一般为AF_INET,表示使用IP地址族;sin_port是以网络字节 序表示的16位端口号;sin_addr是网络字节序的32位IP地址;sin_zero 字段一般不用,用0填充 创建套接口 函数原型:SOCKET socket(int af,int type,int protocol); 函数参数: af参数:说明套接字接口要使用的协议地址族,地址族与协议族含义相同。

如果想建立一个TCP或UDP,只能用常量AF_INET表示使用互联网协议(IP)地址。

type参数:描述套接口的类型,af是AF_INET的时候只能为SOCK_STREAM、SOCK_DGRAM或SOCK_RAW protocol参数:说明该套接口使用的特定协议,当协议地址族af和协议类型type确定后,协议字段可以使用的值是限定的 返回值:成功返回一个整型代表创建成功的socket编号;失败返回INVALID_SOCKET,可以使用WSAGetLastError()获得错误编号。

DediPath($1.40),OpenVZ架构 1GB内存

DediPath 商家成立时间也不过三五年,商家提供的云服务器产品有包括KVM和OPENVZ架构的VPS主机。翻看前面的文章有几次提到这个商家其中机房还是比较多的。其实对于OPENVZ架构的VPS主机以前我们是遇到比较多,只不过这几年很多商家都陆续的全部用KVM和XEN架构替代。这次DediPath商家有基于OPENVZ架构提供低价的VPS主机。这次四折的促销活动不包括512MB内存方案。第一、D...

小渣云(36元/月)美国VPS洛杉矶 8核 8G

小渣云 做那个你想都不敢想的套餐 你现在也许不知道小渣云 不过未来你将被小渣云的产品所吸引小渣云 专注于一个套餐的商家 把性价比 稳定性 以及价格做到极致的商家,也许你不相信36元在别人家1核1G都买不到的价格在小渣云却可以买到 8核8G 高配云服务器,并且在安全性 稳定性 都是极高的标准。小渣云 目前使用的是美国超级稳定的ceranetworks机房 数据安全上 每5天备份一次数据倒异地 支持一...

Hostodo,美国独立日特价优惠,四款特价VPS云服务器7折,KVM虚拟架构,NVMe阵列,1核512M内存1Gbps带宽3T月流量,13.99美元/月,赠送DirectAdmin授权

Hostodo近日发布了美国独立日优惠促销活动,主要推送了四款特价优惠便宜的VPS云服务器产品,基于KVM虚拟架构,NVMe阵列,1Gbps带宽,默认分配一个IPv4+/64 IPv6,采用solusvm管理,赠送收费版DirectAdmin授权,服务有效期内均有效,大致约为7折优惠,独立日活动时间不定,活动机型售罄为止,有需要的朋友可以尝试一下。Hostodo怎么样?Hostodo服务器好不好?...

sockaddr为你推荐
qq业务代码最新的手机开通QQ业务的代码软件开发的周期软件生命周期为什么将软件开发过程划分几个阶段?magento模板magento1.9主题开发用哪个模板为基础好?magento2MRP与MRP2的区别百度创业史1、《创业史》的作者是谁? 2、文中主要人物有哪些?他们的身份是什么? 3、《创客服系统方案营销呼叫中心系统的特点及解决方案?催收软件哪个好问下催款人爆通讯录是电话通讯录还是微信上的通讯录或者其它软件的通讯录慕课网址如何加入慕课学习课程?handoff怎么用iphone handoff怎么用oa源码lotus的oa源码,怎么样?
虚拟主机是什么 GGC hostmonster rak机房 godaddy域名优惠码 服务器日志分析 促正网秒杀 刀片服务器是什么 cdn加速原理 phpmyadmin配置 服务器是干什么的 网通服务器托管 新世界服务器 创建邮箱 空间登入 www789 dnspod 贵阳电信测速 lamp什么意思 lamp兄弟连 更多