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.

AkkoCloud(60元/月 ),英国伦敦CN2 1核 768 MB 内存 10 GB SSD 硬盘 600GB 流量 英国伦敦CN2 1核  1.5G  300Mbps

官方网站:https://www.akkocloud.com/AkkoCloud新品英国伦敦CN2 GIA已上线三网回程CN2 GIA 国内速度优秀.电信去程CN2 GIALooking Glass:http://lonlg.akkocloud.com/Speedtest:http://lonlg.akkocloud.com/speedtest/新品上线刚好碰上国庆节 特此放上国庆专属九折循环优惠...

gcorelabs远东khabarovsk伯力Cloud云服务器测评,告诉你gcorelabs云服务器怎么样

说明一下:gcorelabs的俄罗斯远东机房“伯力”既有“Virtual servers”也有“CLOUD SERVICES”,前者是VPS,后者是云服务器,不是一回事;由于平日大家习惯把VPS和云服务器当做一回事儿,所以这里要特别说明一下。本次测评的是gcorelabs的cloud,也就是云服务器。 官方网站:https://gcorelabs.com 支持:数字加密货币、信用卡、PayPal...

41云,服务器8折优惠券,200G TCP防御

41云怎么样?41云是国人主机品牌,目前经营产品有国内外云服务器、CDN(高防CDN)和物理机,其中国内外云服务器又细分小类有香港限流量VPS、香港大带宽VPS、香港弹性自选VPS、香港不限流VPS、香港BGP线路VPS、香港Cera+大带宽机器、美国超防VPS、韩国原生VPS、仁川原生VPS、日本CN2 VPS、枣庄高防VPS和金华高防VPS;物理机有美国Cera服务器、香港单程CN2服务器、香...

sockaddr为你推荐
智能机刷机软件安卓手机在电脑上强制刷机用什么软件好?magento2MRP与MRP2的区别物联卡官网物联卡9.9元100g流量卡是真的吗智能公共广播系统公共广播系统的品牌都有哪些??云图好看吗电影云图好看吗?99客服软件下载99客服软件不兼容 win8handoff怎么用Hand off怎么用?联通玩电信游戏我朋友是联通的网,想玩电信的游戏但是发现都很卡买卖论坛请推荐几个二手手机论坛,越多越好怎么发布小程序如何提交发布微信小程序对接
虚拟主机提供商 GGC 新加坡服务器 日志分析软件 一元域名 合肥鹏博士 40g硬盘 有奖调查 hinet idc是什么 免费防火墙 免费网页申请 常州联通宽带 网站加速软件 河南移动梦网 韩国代理ip 群英网络 腾讯网盘 网络速度 百度新闻源申请 更多