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()获得错误编号。

美国高防云服务器 1核 1G 26元/月 香港/日本站群服务器 E5 16G 1600元/月 触摸云

触摸云国内IDC/ISP资质齐全商家,与香港公司联合运营, 已超8年运营 。本次为大家带来的是双12特惠活动,美国高防|美国大宽带买就可申请配置升档一级[CPU内存宽带流量选一]升档方式:CPU内存宽带流量任选其一,工单申请免费升级一档珠海触摸云科技有限公司官方网站:https://cmzi.com/可新购免费升档配置套餐:地区CPU内存带宽数据盘价格购买地址美国高防 1核 1G10M20G 26...

NameCheap域名转入优惠再次来袭 搜罗今年到期域名续费

在上个月的时候也有记录到 NameCheap 域名注册商有发布域名转入促销活动的,那时候我也有帮助自己和公司的客户通过域名转入到NC服务商这样可以实现省钱续费的目的。上个月续费转入的时候是选择9月和10月份到期的域名,这不还有几个域名年底到期的,正好看到NameCheap商家再次发布转入优惠,所以打算把剩下的还有几个看看一并转入进来。活动截止到9月20日,如果我们需要转入域名的话可以准备起来。 N...

昔日数据:香港云服务器(2G防御)、湖北云服务器(100G防御),首月5折,低至12元/月

昔日数据,国内商家,成立于2020年,主要销售湖北十堰和香港HKBN的云服务器,采用KVM虚拟化技术构架,不限制流量。当前夏季促销活动,全部首月5折促销,活动截止于8月11日。官方网站:https://www.xrapi.cn/5折优惠码:XR2021湖北十堰云服务器托管于湖北十堰市IDC数据中心,母鸡采用e5 2651v2,SSD MLC企业硬盘、 rdid5阵列为数据护航,100G高防,超出防...

sockaddr为你推荐
win8企业版win8企业版和专业版哪个好win7无线局域网在win7下如何创建无线局域网百度预测世界杯预测世界杯8强名单物联卡官网联通电信物联卡是正规卡吗?怎么不能在官网充值?智能公共广播系统公共广播系统的品牌都有哪些??Costco茅台被抢光Costco在中国大陆第一家店开业首日被挤爆,为什么人们都特别青睐洋货?微软永久关闭实体店如何注销微软账户盈科oa办公系统oa登录不了cad图批量打印CAD怎样批量打印图纸hub和路由器的区别路由器和HUB的区别不同?
vir cve-2014-6271 directadmin 轻量 web服务器架设 ftp教程 秒杀预告 hinet 135邮箱 网站卫士 什么是服务器托管 电信网络测速器 新加坡空间 ssl加速 cdn服务 电信主机托管 winserver2008r2 apache启动失败 asp简介 ftp是什么东西 更多