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

极光KVM美国美国洛杉矶元/极光kvmCN7月促销,美国CN2 GIA大带宽vps,洛杉矶联通CUVIP,14元/月起

极光KVM怎么样?极光KVM本月主打产品:美西CN2双向,1H1G100M,189/年!在美西CN2资源“一兆难求”的大环境下,CN2+大带宽 是很多用户的福音,也是商家实力的象征。目前,极光KVM在7月份的促销,7月促销,美国CN2 GIA大带宽vps,洛杉矶联通cuvip,14元/月起;香港CN2+BGP仅19元/月起,这次补货,机会,不要错过了。点击进入:极光KVM官方网站地址极光KVM七月...

Ceraus24元/月,国庆促销 香港云上新首月五折

Ceraus数据成立于2020年底,基于KVM虚拟架构技术;主营提供香港CN2、美国洛杉矶CN2、日本CN2的相关VPS云主机业务。喜迎国庆香港上新首月五折不限新老用户,cera机房,线路好,机器稳,适合做站五折优惠码:gqceraus 续费七五折官方网站:https://www.ceraus.com香港云内存​CPU硬盘流量宽带优惠价格购买地址香港云2G2核40G不限5Mbps24元/月点击购买...

CloudCone中国春节优惠活动限定指定注册时间年付VPS主机$13.5

CloudCone 商家产品还是比较有特点的,支持随时的删除机器按时间计费模式,类似什么熟悉的Vultr、Linode、DO等服务商,但是也有不足之处就在于机房太少。商家的活动也是经常有的,比如这次中国春节期间商家也是有提供活动,比如有限定指定时间段之前注册的用户可以享受年付优惠VPS主机,比如年付13.5美元。1、CloudCone新年礼物限定款仅限2019年注册优惠购买,活动开始时间:1月31...

sockaddr为你推荐
文件解压器下载压缩解压软件下载一秒钟变格格老干妈多少钱一瓶stm32视频教程谁能发个STM32单片机的视频教程CA3445ca724的临床意义magento2心慌方2是什么意思?dnf客户端消失DNF客户端突然消失人脸检测综述人脸检测技术的来源创业好项目论坛大学生创业有什么好的项目啊?cf服务器爆满为什么我穿越火线一进服务器就显示 该服务器爆满然后又显示nero教程NERO怎么使用?
云南服务器租用 fastdomain 站群服务器 themeforest 老左博客 ssh帐号 阿里云浏览器 免空 asp免费空间申请 北京双线 购买国外空间 无限流量 海外空间 网站加速软件 论坛主机 谷歌台湾 江苏双线 广州服务器托管 好看的空间 锐速 更多