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

HostYun 新增美国三网CN2 GIA VPS主机 采用美国原生IP低至月15元

在之前几个月中也有陆续提到两次HostYun主机商,这个商家前身是我们可能有些网友熟悉的主机分享团队的,后来改名称的。目前这个品牌主营低价便宜VPS主机,这次有可以看到推出廉价版本的美国CN2 GIA VPS主机,月费地址15元,适合有需要入门级且需要便宜的用户。第一、廉价版美国CN2 GIA VPS主机方案我们可看到这个类型的VPS目前三网都走CN2 GIA网络,而且是原生IP。根据信息可能后续...

LOCVPS新上日本软银线路VPS,原生IP,8折优惠促销

LOCVPS在农历新年之后新上架了日本大阪机房软银线路VPS主机,基于KVM架构,配备原生IP,适用全场8折优惠码,最低2GB内存套餐优惠后每月仅76元起。LOCVPS是一家成立于2012年的国人VPS服务商,提供中国香港、韩国、美国、日本、新加坡、德国、荷兰、俄罗斯等地区VPS服务器,基于KVM或XEN架构(推荐选择KVM),线路方面均选择国内直连或优化方案,访问延迟低,适合建站或远程办公使用。...

Hostodo:$19.99/年KVM-1GB/12GB/4TB/拉斯维加斯

Hostodo发布了几款采用NVMe磁盘的促销套餐,从512MB内存起,最低年付14.99美元,基于KVM架构,开设在拉斯维加斯机房。这是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,产品性能一般,数据中心目前在拉斯维加斯和迈阿密,支持使用PayPal或者支付宝等付款方式。下面列出几款NVMe硬盘套餐配置信息。CPU:1core内存:512MB...

sockaddr为你推荐
win7无线局域网win7怎么建立无线局域网联机玩游戏?开放网开放wifi怎么改为不开放wifijava学习思维导图如何一步一步学习java 知乎excel2003官方microsoft office 2003下载百度预测世界杯世界杯预测msn邮箱后缀所有后缀是hotmail.com的邮箱都是MSN吗iphone12或支持北斗导航iphone12是问题机吗淘气鸟松鸦是否会说话?微信语音在哪个文件夹微信时的语音聊天记录保存在哪一个文件夹人脸检测综述人脸检测方法
长沙虚拟主机 移动服务器租用 广东vps 踢楼 哈喽图床 网页背景图片 国外php空间 地址大全 福建天翼加速 qingyun ftp教程 日本bb瘦 合租空间 idc是什么 卡巴斯基免费试用 cxz 云服务器比较 测速电信 博客域名 闪讯网 更多