sockaddrstruct sockaddr_in addr是什么意思?求大神解答

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

SOCKADDR_IN的基本结构

在windows/linux下有下面结构: sockaddr结构 struct sockaddr { unsigned short sa_family;/*addressfamily,AF_xxx*/ char sa_data[14];/*14bytesofprotocoladdress*/ }; sa_family是地址家族,一般都是“AF_xxx”的形式。

通常大多用的是都是AF_INET,代表TCP/IP协议族。

sa_data是14字节协议地址。

此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。

但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等价的数据结构 sockaddr_in(/in.h中定义): struct?sockaddr_in{short?sin_family;/*Address?family一般来说AF_INET(地址族)PF_INET(协议族)*/unsigned?short?sin_port;/*Port?number(必须要采用网络数据格式,普通数字可以用htons()函数转换成网络数据格式的数字)*/struct?in_addr?sin_addr;/*IP?address?work?byte?order(?address)*/unsigned?char?sin_zero[8];/*Same?size?as?struct?sockaddr没有实际意义,只是为了 跟SOCKADDR结构在内存中对齐*/};(在ws2def.h中定义): struct?sockaddr_in{????#if(_WIN32_WINNT<0x0600)????short?sin_family;????#else//(_WIN32_WINNT<0x0600)????address_family?sin_family;????#endif//(_WIN32_WINNT<0x0600)????ushort?sin_port;????in_addr?sin_addr;????char?sin_zero[8];} (在WinSock2.h中定义): struct?sockaddr_in?{????????short???sin_family;????????u_short?sin_port;????????struct??in_addr?sin_addr;????????char????sin_zero[8];}; 在linux下: in_addr结构 typedef?uint32_t?in_addr_t;struct?in_addr??{????in_addr_t?s_addr;??};在windows下: typedef?struct?in_addr{????union{????????????struct?{?unsigned?char?s_b1,s_b2,s_b3,s_b4;?}?S_un_b;????????????struct?{?unsigned?short?s_w1,s_w2;?}?S_un_w;????????????unsigned?long?S_addr;????}S_un;}in_addr;更多参考:in_addr

如何将IP地址转换成sockaddr

地址的字节序不用转换 SockAdd_In.sin_addr.S_addr :=_addr(PAnsiChar(IP)); 另外请注意delphi的版本, 如果高版本的(delphi2009以上)用下面的 SockAdd_In.sin_addr.S_addr :=_addr(PAnsiChar(AnsiString(IP)));

在套接字编程里常出现(struct sockaddr *)&server,这个结构是什么意思?

这个是说把server变量所在地址的数据类型转换为sockaddr,sockaddr从字面上理解就是地址的意思。

在API里,套接字不仅仅可以用于TCP/IP协议下,也可以用于NETBOIS等早期的协议。

简单说就是多协议公用的标识地址的结构

struct sockaddr_in addr是什么意思?求大神解答

struct sockaddr_in是已经声明了的结构名,这里当作类型名来使用,如基础类型名int,double等等,addr被声明为struct sockaddr_in类型的变量,就像int a;中的a一样。

3C云1核1G 9.9元 4核4G 16元 美国Cera 2核4G 24元

3C云互联怎么样?3C云互联专注免备案香港美国日本韩国台湾云主机vps服务器,美国高防CN2GIA,香港CN2GIA,顶级线路优化,高端品质售后无忧!致力于对互联网云计算科技深入研发与运营的极客共同搭建而成,将云计算与网络核心技术转化为最稳定,安全,高速以及极具性价比的云服务器等产品提供给用户!专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松...

BuyVM老牌商家新增迈阿密机房 不限流量 月付2美元

我们很多老用户对于BuyVM商家还是相当熟悉的,也有翻看BuyVM相关的文章可以追溯到2014年的时候有介绍过,不过那时候介绍这个商家并不是很多,主要是因为这个商家很是刁钻。比如我们注册账户的信息是否完整,以及我们使用是否规范,甚至有其他各种问题导致我们是不能购买他们家机器的。以前你嚣张是很多人没有办法购买到其他商家的机器,那时候其他商家的机器不多。而如今,我们可选的商家比较多,你再也嚣张不起来。...

选择Vultr VPS主机不支持支付宝付款的解决方案

在刚才更新Vultr 新年福利文章的时候突然想到前几天有网友问到自己有在Vultr 注册账户的时候无法用支付宝付款的问题,当时有帮助他给予解决,这里正好顺带一并介绍整理出来。毕竟对于来说,虽然使用的服务器不多,但是至少是见过世面的,大大小小商家的一些特性特征还是比较清楚的。在这篇文章中,和大家分享如果我们有在Vultr新注册账户或者充值购买云服务器的时候,不支持支付宝付款的原因。毕竟我们是知道的,...

sockaddr为你推荐
水冷机箱多少钱主机安一个水冷要多少钱?在线年龄查询器怎样喂熊熊?开放网开放wifi怎么改为不开放wifi垃圾文件清理bat如何一键清理系统垃圾文件.bat?windowsphone手机Windows phone手机的优点和缺点magento模板magento1.9主题开发用哪个模板为基础好?微信语音在哪个文件夹电脑版微信的语音文件夹在哪个文件夹创业好项目论坛大学生创业有什么好的项目啊?500人同时满足500人在线的性能测试jmeter怎么设置线程和并发数微软永久关闭实体店微软在中国有实体店吗
域名备案收费吗 godaddy域名解析 过期域名抢注 国内永久免费云服务器 l5520 正版win8.1升级win10 tk域名 商家促销 彩虹ip 云鼎网络 idc资讯 世界测速 360云服务 域名dns cxz 阿里云手机官网 xuni 乐视会员免费领取 双11促销 wordpress空间 更多