爱站小工具怎么在网上发布广告

张小明 2026/1/13 0:20:17
爱站小工具,怎么在网上发布广告,福田网站建设,企业网站建设需要多少钱创造通信套接字socketint fd socket(AF_INET, SOCK_DGRAM, 0);sendto 用于通过 UDP 套接字 发送数据。recvfrom 用于通过 UDP 套接字 接收数据。//客户端单播 #include stdio.h #include stdlib.h #include string.h #include unistd.h #incl…创造通信套接字socketint fd socket(AF_INET, SOCK_DGRAM, 0);sendto 用于通过 UDP 套接字 发送数据。recvfrom 用于通过 UDP 套接字 接收数据。//客户端单播 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include arpa/inet.h #include sys/socket.h #define PORT 9999 #define BUFFER_SIZE 1024 int main(){ //创建UDP套接字 int sockfd socket(AF_INET, SOCK_DGRAM, 0); if(sockfd -1){ perror(创建套接字失败); return -1; } //绑定到本地端口 struct sockaddr_in local_addr; memset(local_addr, 0, sizeof(local_addr)); local_addr.sin_family AF_INET; local_addr.sin_port htons(PORT); local_addr.sin_addr.s_addr htonl(INADDR_ANY); int ret_bind bind(sockfd, (struct sockaddr*)local_addr, sizeof(local_addr)); if(ret_bind -1){ perror(绑定失败); close(sockfd); return -1; } printf(监听广播端口%d\n,PORT); //循环接收数据 while(1){ char buf[BUFFER_SIZE]; struct sockaddr_in sender_addr; socklen_t sender_addr_len sizeof(sender_addr); ssize_t ret_recv recvfrom(sockfd, buf, sizeof(buf), 0, (struct sockaddr*)sender_addr, sender_addr_len); if(ret_recv -1){ perror(接收失败); continue; } buf[ret_recv] \0; printf(收到广播信息%s(来自 %s:%d)\n,buf,inet_ntoa(sender_addr.sin_addr),ntohs(sender_addr.sin_port)); } close(sockfd); return 0; }服务端单播 #include stdio.h // 标准输入输出 #include stdlib.h // 标准库函数如exit、malloc等 #include string.h // 字符串处理函数 #include unistd.h // Unix系统调用如close、sleep等 #include arpa/inet.h // 网络地址转换函数 #include sys/socket.h // 套接字API #define PORT 9999 // 广播使用的端口号 #define BROADCAST_IP 255.255.255.255 // 广播IP地址全局广播 int main(){ //创建UDP套接字 int sockfd socket(AF_INET, SOCK_DGRAM, 0); if(sockfd -1){ perror(套接字创建失败); return -1; } //启动广播权限 int opt 1; int ret_set setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, opt, sizeof(opt)); if(ret_set -1){ perror(启动广播失败); close(sockfd); return -1; } //配置广播目标地址 struct sockaddr_in broadcast_addr; memset(broadcast_addr, 0, sizeof(broadcast_addr)); broadcast_addr.sin_family AF_INET; broadcast_addr.sin_port htons(PORT); broadcast_addr.sin_addr.s_addr inet_addr(BROADCAST_IP); //发送广播数据 char message[] Hello!Broadcast!; ssize_t ret_send sendto(sockfd, message, strlen(message), 0, (struct sockaddr*)broadcast_addr, sizeof(broadcast_addr)); if(ret_send -1){ perror(发送失败); }else{ printf(广播发送成功%s:%zd bytes\n,message,ret_send); } close(sockfd); return 0; }setsockopt()函数用于任意类型、任意状态套接口的设置选项值//客户端组播 #include stdio.h // 标准输入输出函数 #include stdlib.h // 标准库函数如exit等 #include string.h // 字符串处理函数 #include unistd.h // Unix系统调用如close等 #include arpa/inet.h // 网络地址转换函数 #include sys/socket.h // 套接字API #define PORT 8888 // 服务器监听端口 #define SERVER_IP 192.168.26.128 // 服务器IP地址 #define BUFFER_SIZE 1024 // 接收缓冲区大小 int main(){ //创建套接字 int sockfd socket(AF_INET, SOCK_DGRAM, 0); if(sockfd -1){ perror(创建套接字失败); return -1; } //配置服务器地址信息 struct sockaddr_in serverInfo; memset(serverInfo, 0, sizeof(serverInfo)); serverInfo.sin_family AF_INET; serverInfo.sin_port htons(PORT); serverInfo.sin_addr.s_addr inet_addr(SERVER_IP); //发送数据 char message[] Hello,UDP Server!; ssize_t ret_sendto sendto(sockfd, message, strlen(message), 0, (struct sockaddr*)serverInfo, sizeof(serverInfo)); if(ret_sendto -1){ perror(发送失败); close(sockfd); return -1; } printf(已经发送消息%s\n,message); //接收回显消息 char buf[BUFFER_SIZE] {0}; struct sockaddr_in fromInfo; socklen_t fromInfo_len sizeof(fromInfo); ssize_t ret_recvfrom recvfrom(sockfd, buf, sizeof(buf) - 1, 0, (struct sockaddr*)fromInfo, fromInfo_len); if(ret_recvfrom -1){ perror(接收失败); }else{ buf[ret_recvfrom] \0; printf(服务器回显%s\n,buf); } close(sockfd); return 0; }服务端组播 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include arpa/inet.h #include sys/socket.h #define MULTICAST_IP 239.255.0.1 #define PORT 12345 #define BUFFER_SIZE 1024 int main(){ //创建套接字 int sockfd socket(AF_INET,SOCK_DGRAM, 0); if(sockfd -1){ perror(创建套接字失败); return -1; } //绑定套接字到本地端口 struct sockaddr_in local_addr; memset(local_addr, 0, sizeof(local_addr)); local_addr.sin_family AF_INET; local_addr.sin_port htons(PORT); local_addr.sin_addr.s_addr htonl(INADDR_ANY); int ret bind(sockfd, (struct sockaddr*)local_addr, sizeof(local_addr)); if(ret -1){ perror(绑定失败); close(sockfd); return -1; } //加入组播组 struct ip_mreq mreq; mreq.imr_multiaddr.s_addr inet_addr(MULTICAST_IP); mreq.imr_interface.s_addr htonl(INADDR_ANY); int ret_set setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, mreq, sizeof(mreq)); if(ret_set -1){ perror(加入组播失败); close(sockfd); return -1; } printf(已经加入组播组 %s监听端口%d \n,MULTICAST_IP, PORT); //循环接收数据 while(1){ char buf[BUFFER_SIZE]; struct sockaddr_in sender_addr; socklen_t sender_addr_len sizeof(sender_addr); ssize_t ret_recv recvfrom(sockfd, buf, sizeof(buf), 0 ,(struct sockaddr*)sender_addr, sender_addr_len); if(ret_recv -1){ perror(接收失败); continue; } buf[ret_recv] \0;//添加字符串结束符 printf(收到来自 %s:%d 的组播消息%s\n,inet_ntoa(sender_addr.sin_addr),ntohs(sender_addr.sin_port),buf); } return 0; }//客户端广播 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include arpa/inet.h #include sys/socket.h #define PORT 12345 #define MULTICAST_IP 239.255.0.1 int main(){ //创建UDP套接字 int sockfd socket(AF_INET, SOCK_DGRAM, 0); if(sockfd -1){ perror(创建套接字失败); return -1; } //配置组播目标地址 struct sockaddr_in multicast_addr; memset(multicast_addr, 0 , sizeof(multicast_addr)); multicast_addr.sin_family AF_INET; multicast_addr.sin_port htons(PORT); multicast_addr.sin_addr.s_addr inet_addr(MULTICAST_IP); //设置组播包的TTLTTL - Time to Live int ttl 1;//TTL 1表示数据包仅在局域网内进行传播 int ret_set setsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL, ttl, sizeof(ttl)); if(ret_set -1){ perror(加入组播失败); close(sockfd); return -1; } //发送数据到组播组 char message[] Hello! Multicast Group!; ssize_t ret_send sendto(sockfd, message, strlen(message), 0, (struct sockaddr*)multicast_addr, sizeof(multicast_addr)); if(ret_send -1){ perror(发送失败); }else{ printf(数据发送成功%s:%zd bytes\n,message,ret_send); } return 0; }服务端广播 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include arpa/inet.h #include sys/socket.h #define PORT 8888 #define BUFFER_SIZE 1024 int main(){ //创建UDP套接字 int sockfd socket(AF_INET, SOCK_DGRAM, 0); if(sockfd -1){ perror(Socket创建失败); return -1; } //配置服务器地址结构体 struct sockaddr_in serverInfo; memset(serverInfo, 0 , sizeof(serverInfo)); serverInfo.sin_family AF_INET; serverInfo.sin_port htons(PORT); serverInfo.sin_addr.s_addr INADDR_ANY;//这里表示要监听所有网卡 //绑定套接字到地址和端口 int ret_bind bind(sockfd, (struct sockaddr*)serverInfo, sizeof(serverInfo)); if(ret_bind -1){ perror(绑定失败); close(sockfd); return -1; } printf(UDP服务器已启动 监听端口%d \n,PORT); //循环接收并且回显数据 while(1){ char buf[BUFFER_SIZE] {0}; struct sockaddr_in clientInfo; socklen_t clientInfo_len sizeof(clientInfo); //接收数据 ssize_t recv_len recvfrom(sockfd, buf, sizeof(buf), 0, (struct sockaddr*)clientInfo, clientInfo_len); if(recv_len -1){ perror(接收数据失败); continue;//继续等待下一个数据包 } //打印客户端信息 printf(收到来自%s%d的信息%s\n,inet_ntoa(clientInfo.sin_addr), ntohs(clientInfo.sin_port),buf); //回显数据 ssize_t send_len sendto(sockfd, buf, recv_len, 0, (struct sockaddr*)clientInfo, clientInfo_len); if(send_len -1){ perror(回显数据失败); } } close(sockfd); return 0; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设项目需求说明字体设计图片素材

FaceFusion支持FTP/SFTP自动上传处理结果:技术实现与工程应用解析在AI图像生成系统日益走向生产化的今天,一个看似不起眼的功能——“处理完自动把结果传到服务器”——往往成为决定项目能否落地的关键。以FaceFusion这类人脸融合工具为例,早…

张小明 2026/1/9 13:23:45 网站建设

苏州做商城网站福州网站定制设计

在制造业数字化转型进程中,生产计划报工作为连接生产计划与现场执行的核心环节,直接影响订单交付效率、产能利用率及成本控制。据相关数据显示,72%的制造企业因生产计划与报工不同步,导致订单交付延误率超20%,35%的企业…

张小明 2025/12/23 12:29:07 网站建设

企业网站建设代理加盟百姓网招聘信息最新招聘

第一章:Dify平台Agent扩展开发概述 Dify 是一个面向 AI 应用开发的低代码平台,支持通过插件化 Agent 扩展其核心能力。开发者可以基于开放的 SDK 和规范,构建自定义的智能代理模块,实现与外部系统集成、定制化数据处理和增强型对话…

张小明 2025/12/23 12:28:03 网站建设

时尚美容网站建设网站建设怎么评估

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera&am…

张小明 2025/12/23 12:25:56 网站建设

17网站一起做网店怎么样西语网站域名

MindSpore框架下LSUN数据集高效处理实战指南 【免费下载链接】diffusers-cd_bedroom256_l2 项目地址: https://ai.gitcode.com/hf_mirrors/openai/diffusers-cd_bedroom256_l2 你是否曾为海量图像数据的加载和预处理感到头疼?当面对包含数万张高分辨率图像的…

张小明 2025/12/23 12:24:53 网站建设

厦门网站开发招聘易思企业网站管理系统

Langchain-Chatchat与通义千问本地化部署指南 在企业知识管理日益智能化的今天,如何让大语言模型真正“读懂”你的内部文档,而不是依赖公有云API带来数据泄露风险和延迟问题?越来越多的技术团队开始将目光投向本地化知识库问答系统——既能发…

张小明 2025/12/23 12:23:48 网站建设