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.

georgedatacenter39美元/月$20/年/洛杉矶独立服务器美国VPS/可选洛杉矶/芝加哥/纽约/达拉斯机房/

georgedatacenter这次其实是两个促销,一是促销一款特价洛杉矶E3-1220 V5独服,性价比其实最高;另外还促销三款特价vps,georgedatacenter是一家成立于2019年的美国VPS商家,主营美国洛杉矶、芝加哥、达拉斯、新泽西、西雅图机房的VPS、邮件服务器和托管独立服务器业务。georgedatacenter的VPS采用KVM和VMware虚拟化,可以选择windows...

DiyVM:2G内存/50G硬盘/元起线路香港vps带宽CN2线路,香港VPS五折月付50元起

DiyVM是一家低调国人VPS主机商,成立于2009年,提供的产品包括VPS主机和独立服务器租用等,数据中心包括香港沙田、美国洛杉矶、日本大阪等,VPS主机基于XEN架构,均为国内直连线路,主机支持异地备份与自定义镜像,可提供内网IP。最近,商家对香港机房VPS提供5折优惠码,最低2GB内存起优惠后仅需50元/月。下面就以香港机房为例,分享几款VPS主机配置信息。CPU:2cores内存:2GB硬...

易探云2核2G5M仅330元/年起,国内挂机宝云服务器,独立ip

易探云怎么样?易探云是国内一家云计算服务商家,致力香港服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。目前,易探云推出深圳或北京地区的适合挂机和建站的云服务器,国内挂机宝云服务器(可选深圳或北京地区),独立ip;2核2G5M挂机云服务器仅330元/年起!点击进入:易探云官方网站地址易探云国内挂机宝云服务器推荐:1、国内入门型挂机云服务器...

sockaddr为你推荐
android半透明如何实现Android透明导航栏nasa中文官网NASA总部在哪里?spotlight搜索是什么spotlight是什么意思淘气鸟乌儿很淘气,飞来飞去,蹦蹦跳跳,请你用“一会儿…一会儿…一会儿…”写写鸟儿?百度创业史百度能创业成功的原因是什么物联卡官网联通电信物联卡是正规卡吗?怎么不能在官网充值?印象城市游戏论坛游聚游戏平台如何使用?si1encesin90等于多少为什么金山铁路最新时刻表上海铁路时间表handoff怎么用Hand off怎么用?
台湾虚拟主机 最新代理服务器ip 域名主机管理系统 如何注册中文域名 新秒杀 美国独立服务器 bluevm mediafire下载工具 360抢票助手 阿里云浏览器 炎黄盛世 日本bb瘦 169邮箱 美国堪萨斯 中国电信宽带测速器 in域名 1元域名 宏讯 阿里云官方网站 iki 更多