sockaddr在网络编程中,SOCKADDR_IN 后缀_IN代表什么意思,这种命名规则是什么

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

sizeof (struct sockaddr) sizeof (struct sockaddr_in)

都是 16字节 实际上这两个结构可以直接相互转换的。

struct sockaddr { u_short sa_family; /* address family */ char sa_data[14]; /* up to 14 bytes of direct address */ }; struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { u_short s_w1,s_w2; } S_un_w; u_long S_addr; } S_un;

SOCKADDR_IN的经典案例

服务端: int?main(){//创建socketint?sockfd?=?socket(PF_LOCAL,SOCK_DGRAM,0);if(sockfd?==?-1)perror("创建socket失败"),exit(-1);//准备通信地址struct?sockaddr_un?addr;addr.sun_family?=?PF_UNIX;strcpy(addr.sun_path,?"a.sock");//绑定intres=bind(sockfd,?(struct?sockaddr*)&addr,sizeof(addr));if(res==-1)perror("绑定失败"),exit(-1);printf("绑定成功 ");//通信(用读写文件方式)charbuf[100]={};read(sockfd,buf,sizeof(buf));printf("收到信息:%s ",buf);//关闭socketclose(sockfd);return?0;}客户端: int?main(){int?sockfd=socket(PF_LOCAL,SOCK_DGRAM,0);if(sockfd==-1)perror("创建socket失败"),exit(-1);struct?sockaddr_un?addr;addr.sun_family=PF_UNIX;strcpy(addr.sun_path,"a.sock");//连接int?res=connect(sockfd,(structsockaddr*)&addr,sizeof(addr));if(res==-1)perror("失败"),exit(-1);printf("成功 ");write(sockfd,"Hello,Socket!",14);close(sockfd);return?0;}

sockaddr 如何赋值

给你写了个函数做参考,仔细看看吧,我就不多解释了: #include int socketinit(const char *szIP,int nPort,SOCKADDR *pSockAddr) { if (!pSockAddr||!szIP) return -1; if (nPort<1) return -1; memset(pSockAddr,0,sizeof(*pSockAddr)); SOCKADDR_IN *addr=(sockaddr_in *)pSockAddr; addr->sin_family=AF_INET; if (szIP&&strlen(szIP)>0) { if (isalpha(szIP[0])) { hostent *remoteHost=gethostbyname(szIP); if (!remoteHost) { return -1; } addr->sin_addr= *((in_addr *)*remoteHost->h_addr_list); } else { addr->sin_addr.s_addr=_addr(szIP); } } else addr->sin_addr.s_addr=INADDR_ANY; addr->sin_port=htons(nPort); SOCKET nSocket; nSocket=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (nSocket==-1) { return -1; } return nSocket; } void main() { SOCKADDR s; socketinit("127.0.0.1",80,&s); }

Linux socket的几种地址结构 sockaddr与sockaddr

一般就 sockaddr_un /* UNIX domain */ sockaddr_in /* IPv4 */ sockaddr_in6 /* IPv6 */ .... 当然还有协议无关的 sockaddr_storage 一般都会强制转换 (struct sockaddr *)&sockaddr_xx .

在网络编程中,SOCKADDR_IN 后缀_IN代表什么意思,这种命名规则是什么

应该是的意思吧,msdn对SOCKADDR_IN的解释是这样说的: In the address family, this structure is used by Windows Sockets to specify a local or remote endpoint address to which to connect a socket. This is the form of the sockaddr structure specific to the address family and can be cast to sockaddr.

PIGYUN:美国联通CUVIPCUVIP限时cuvip、AS9929、GIA/韩国CN2机房限时六折

pigyun怎么样?PIGYunData成立于2019年,2021是PIGYun为用户提供稳定服务的第三年,目前商家提供香港CN2线路、韩国cn2线路、美西CUVIP-9929、GIA等线路优质VPS,基于KVM虚拟架构,商家采用魔方云平台,所有的配置都可以弹性选择,目前商家推出了七月优惠,韩国和美国所有线路都有相应的促销,六折至八折,性价比不错。点击进入:PIGYun官方网站地址PIGYUN优惠...

特网云(1050元),IP数5 个可用 IP (/29) ,美国高防御服务器 无视攻击

特网云特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。官方网站:https://www.56dr.com/ 10年老品牌 值得信赖 有需要的请联系======================特网云美国高防御...

ZJI:520元/月香港服务器-2*E5-2630L/32GB/480G SSD/30M带宽/2IP

ZJI发布了一款7月份特别促销独立服务器:香港邦联四型,提供65折优惠码,限量30台(每用户限购1台),优惠后每月520元起。ZJI是原来Wordpress圈知名主机商家:维翔主机,成立于2011年,2018年9月启用新域名ZJI,提供中国香港、台湾、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册等业务。下面列出这款服务器的配置信息。香港邦联四型CPU:2*E5-2...

sockaddr为你推荐
qq云手写面板为什么我的QQ云手写面板经常转换失效win7无线局域网windows7怎样设置无线局域网windowsphone手机谁能给说说微软Windows phone 手机啊?色中色luntancoreldraw x6怎么抠图换背景iphone12或支持北斗导航iphone12是问题机吗windows7系统要求win7系统要求客服系统方案客户管理系统方案都有哪些呢?人脸检测综述人脸检测技术的研究现状催收软件哪个好欠钱不还的,怎么利用催收平台帮助催收?腾讯汽车论坛买车需要注意些神马?
新加坡服务器 Dedicated 128m内存 美国主机论坛 缓存服务器 tightvnc 青果网 最好看的qq空间 彩虹ip 新天域互联 电信虚拟主机 vip域名 申请免费空间和域名 web应用服务器 服务器论坛 腾讯网盘 免费获得q币 winds web是什么意思 机柜尺寸 更多