5分钟教程:用Banana Vision Studio制作极简说明书风格图

核心内容摘要

基于SpringBoot+Vue的房屋交易系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
真的太省时间!千笔·专业降AIGC智能体,口碑爆棚的降AI率工具

springbot宠物领养管理系统设计开发实现

UNIX 域套接字类型UNIX 域流式套接字类似于 TCP提供面向连接、可靠的双向通信使用本地文件路径作为地址适用于本地进程间通信UNIX 域数据报套接字类似于 UDP提供无连接、不可靠的通信同样使用本地文件路径作为地址本地地址结构structsockaddr_un{unsignedshortsun_family;// 协议类型如 AF_UNIXcharsun_path[108];// 套接字文件路径};UNIX 域流式套接字用法和 TCP 套接字基本一致区别在于使用的协议和地址不同服务端流程创建 UNIX 域流式套接字绑定本地地址套接字文件设置监听模式接收客户端的连接请求发送/接收数据示例代码#includesys/socket.h#includesys/un.h#includestdlib.h#includestdio.h#includestring.h#includeunistd.h#defineMY_SOCK_PATH/tmp/my_sock_file#defineLISTEN_BACKLOG50#definehandle_error(msg)\do{perror(msg);exit(EXIT_FAILURE);}while(

intmain(intargc,char*argv[]){intsfd,cfd;structsockaddr_unmy_addr,peer_addr;socklen_tpeer_addr_size;charbuf[BUFSIZ]{};sfdsocket(AF_UNIX,SOCK_STREAM,

;if(sfd-

handle_error(socket);memset(my_addr,0,sizeof(structsockaddr_un));my_addr.sun_familyAF_UNIX;strncpy(my_addr.sun_path,MY_SOCK_PATH,sizeof(my_addr.sun_path)-

;if(bind(sfd,(structsockaddr*)my_addr,sizeof(structsockaddr_un))-

handle_error(bind);if(listen(sfd,LISTEN_BACKLOG)-

handle_error(listen);peer_addr_sizesizeof(structsockaddr_un);cfdaccept(sfd,(structsockaddr*)peer_addr,peer_addr_size);if(cfd-

handle_error(accept);recv(cfd,buf,BUFSIZ,

;printf(%s\n,buf);close(cfd);close(sfd);remove(MY_SOCK_PATH);return0;}客户端流程创建 UNIX 域流式套接字指定服务器端地址套接字文件建立连接发送/接收数据示例代码#includesys/socket.h#includesys/un.h#includestdlib.h#includestdio.h#includestring.h#includeunistd.h#defineMY_SOCK_PATH/tmp/my_sock_file#definehandle_error(msg)\do{perror(msg);exit(EXIT_FAILURE);}while(

intmain(intargc,char*argv[]){intfd;structsockaddr_unpeer_addr;charbuf[BUFSIZ]{Hello World!};fdsocket(AF_UNIX,SOCK_STREAM,

;if(fd-

handle_error(socket);memset(peer_addr,0,sizeof(structsockaddr_un));peer_addr.sun_familyAF_UNIX;strncpy(peer_addr.sun_path,MY_SOCK_PATH,sizeof(peer_addr.sun_path)-

;if(connect(fd,(structsockaddr*)peer_addr,sizeof(structsockaddr_un))-

handle_error(connect);printf(%s\n,buf);send(fd,buf,strlen(buf),

;close(fd);return0;}UNIX 域数据报套接字流程类似于 UDP 套接字无需建立连接UNIX 域流式套接字服务器端流程如下创建 UNIX 域流式套接字绑定本地地址套接字文件发送/接收数据示例代码服务端#includesys/socket.h#includesys/un.h#includestdlib.h#includestdio.h#includestring.h#includeunistd.h#defineMY_SOCK_PATH/tmp/my_sock_file#definehandle_error(msg)\do{perror(msg);exit(EXIT_FAILURE);}while(

intmain(intargc,char*argv[]){intfd;structsockaddr_unmy_addr,peer_addr;socklen_tpeer_addr_size;charbuf[BUFSIZ]{};fdsocket(AF_UNIX,SOCK_DGRAM,

;if(fd-

handle_error(socket);memset(my_addr,0,sizeof(structsockaddr_un));my_addr.sun_familyAF_UNIX;strncpy(my_addr.sun_path,MY_SOCK_PATH,sizeof(my_addr.sun_path)-

;if(bind(fd,(structsockaddr*)my_addr,sizeof(structsockaddr_un))-

handle_error(bind);peer_addr_sizesizeof(structsockaddr_un);recvfrom(fd,buf,BUFSIZ,0,(structsockaddr*)peer_addr,peer_addr_size);printf(%s\n,buf);close(fd);remove(MY_SOCK_PATH);return0;}客户端#includesys/socket.h#includesys/un.h#includestdlib.h#includestdio.h#includestring.h#includeunistd.h#defineMY_SOCK_PATH/tmp/my_sock_file#definehandle_error(msg)\do{perror(msg);exit(EXIT_FAILURE);}while(

intmain(intargc,char*argv[]){intfd;structsockaddr_unpeer_addr;socklen_tpeer_addr_size;charbuf[BUFSIZ]{Hello World!};fdsocket(AF_UNIX,SOCK_DGRAM,

;if(fd-

handle_error(socket);memset(peer_addr,0,sizeof(structsockaddr_un));peer_addr.sun_familyAF_UNIX;strncpy(peer_addr.sun_path,MY_SOCK_PATH,sizeof(peer_addr.sun_path)-

;peer_addr_sizesizeof(structsockaddr_un);printf(%s\n,buf);sendto(fd,buf,strlen(buf),0,(structsockaddr*)peer_addr,peer_addr_size);close(fd);remove(MY_SOCK_PATH);return0;}

已满18周岁从此转入阅读-已满18周岁从此转入阅读应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123