sockaddr_in(SOCKADDR_IN结构中的sin_family ,sin_addr各是什么具体意思有什么区别最好讲得通俗点,谢谢各位高手)
本文目录
- SOCKADDR_IN结构中的sin_family ,sin_addr各是什么具体意思有什么区别最好讲得通俗点,谢谢各位高手
- SOCKADDR_IN结构中的sin_family ,sin_addr各是什么具体意思
- SOCKADDR_IN的经典案例
- Linux下socket编程的sockaddr_in结构体中的__SOCKADDR_COMMON (sin_);是什么意思
SOCKADDR_IN结构中的sin_family ,sin_addr各是什么具体意思有什么区别最好讲得通俗点,谢谢各位高手
sin_family表示协议簇,一般用AF_INET表示TCP/IP协议。sin_addr是一个联合体,用联合体就可以使用多种方式表示IP地址。一般我们使用其中的最后一种方式,即用无符号长整型数据来表示IP地址。此时,用的是s_nu数据成员,s_un是一个结构体,其中只有一个数据成员,即s_addr。使用方式:变量.sin_family=AF_INET;变量.sin_addr.S_un.S.addr=htonl("IP地址");
SOCKADDR_IN结构中的sin_family ,sin_addr各是什么具体意思
sin_family表示协议簇,一般用AF_INET表示TCP/IP协议。sin_addr是一个联合体,用联合体就可以使用多种方式表示IP地址。一般我们使用其中的最后一种方式,即用无符号长整型数据来表示IP地址。此时,用的是s_nu数据成员,s_un是一个结构体,其中只有一个数据成员,即s_addr。使用方式:变量.sin_family=AF_INET;变量.sin_addr.S_un.S.addr=htonl("IP地址");
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("绑定成功\n");//通信(用读写文件方式)charbuf={};read(sockfd,buf,sizeof(buf));printf("收到信息:%s\n",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("成功\n");write(sockfd,"Hello,Socket!",14);close(sockfd);return 0;}
Linux下socket编程的sockaddr_in结构体中的__SOCKADDR_COMMON (sin_);是什么意思
__SOCKADDR_COMMON();是宏定义的意思,括号里面是它的参数,这个宏定义表示的是tcp/ip协议的版本是,ipv4还是ipv6的意思,最后的那个unsignedcharsin_zero的大小为什么做减法呢,是为了保证这个结构提到大小和另一个套接字地址的结构体structsockaddr的大小一致。这么说不知道你能不能不能理解,第一个参数在实际使的时候一般是个常数。再看看别人怎么说的。
更多文章:
苹果6手机屏幕摔坏了换屏多少钱(苹果6屏幕碎了,换个屏多少钱)
2024年3月8日 05:55
最热门的网络游戏(有什么大型、热门、不怎么烧钱的网络游戏推荐)
2024年6月25日 17:29
手机上出现android什么意思(小米手机出现android是什么意思)
2024年7月11日 15:16
惠威d100和d1100哪个好(惠威d1100和漫步者s1000是不是一个档次的产品)
2024年5月14日 22:49
索尼MT28i手机怎么样机身内存是多大?请问索尼LT26ii和28i这两台手机怎么样客观地比较和评价一下,希望用3年货这以上的,
2024年10月14日 19:45
佳能sx130is闪光灯怎么开(佳能数码相机sx130 is怎么打开闪光灯)
2024年1月11日 00:20