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的大小一致。这么说不知道你能不能不能理解,第一个参数在实际使的时候一般是个常数。再看看别人怎么说的。
更多文章:
玛雅44声卡驱动(MAYA44声卡驱动已安装,但无法录到声音(个人觉得该设置的地方好象都设置了))
2024年1月9日 17:05
《硬汉》这部影片怎么样?曾经的硬汉梦想,三月销量仅1辆,Jeep退市还有多远
2024年5月24日 08:11
坚持健身的人与沉迷网游的宅男,两者身体素质有什么差距?有些电子游戏为什么那么吸引人呢
2023年12月6日 10:35
acrobat reader(acrobat reader是干嘛用的)
2024年1月29日 09:30
已有PC,有必要再买台MAC吗丨数字尾巴?数字尾巴是什么 数字尾巴怎么样
2024年1月9日 07:15
汽车租赁网选哪个?在北京宝驾租车网上租了车,没有退押金应该怎么办
2024年6月24日 03:48