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.

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

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

舍利云30元/月起;美国CERA云服务器,原生ip,低至28元/月起

目前舍利云服务器的主要特色是适合seo和建站,性价比方面非常不错,舍利云的产品以BGP线路速度优质稳定而著称,对于产品的线路和带宽有着极其严格的讲究,这主要表现在其对母鸡的超售有严格的管控,与此同时舍利云也尽心尽力为用户提供完美服务。目前,香港cn2云服务器,5M/10M带宽,价格低至30元/月,可试用1天;;美国cera云服务器,原生ip,低至28元/月起。一、香港CN2云服务器香港CN2精品线...

HostMem,最新优惠促销,全场75折优惠,大硬盘VPS特价优惠,美国洛杉矶QuadraNet机房,KVM虚拟架构,KVM虚拟架构,2核2G内存240GB SSD,100Mbps带宽,27美元/年

HostMem近日发布了最新的优惠消息,全场云服务器产品一律75折优惠,美国洛杉矶QuadraNet机房,基于KVM虚拟架构,2核心2G内存240G SSD固态硬盘100Mbps带宽4TB流量,27美元/年,线路方面电信CN2 GT,联通CU移动CM,有需要美国大硬盘VPS云服务器的朋友可以关注一下。HostMem怎么样?HostMem服务器好不好?HostMem值不值得购买?HostMem是一家...

sockaddr为你推荐
CA3445什么是CAB-35?发博客怎么发博客?java学习思维导图如何成为一个很厉害的人思维导图客服系统方案营销呼叫中心系统的特点及解决方案?北漂论坛介绍些北漂生活的经验创业好项目论坛我想创业,有没有什么好的项目,福州创业QQ群有吗?或者是创业论坛?创业好项目论坛谁能提供点真实可靠的,网络创业赚钱项目?创业好项目论坛1000元创业有什么好项目可以做?金山铁路最新时刻表金山北至上虞北高铁时间表无法清除dns缓存无法清除dns缓存 设置好后重起又是无法清除
企业虚拟主机 山东虚拟主机 大连虚拟主机 香港vps主机 winscp 香港vps99idc 息壤主机 免费网站监控 ev证书 嘉洲服务器 福建天翼加速 创梦 hostker 免费个人空间 北京双线 安徽双线服务器 免费mysql数据库 中国电信测速器 789 阿里云免费邮箱 更多