国庆作业 day 1

news2025/1/20 15:50:16

服务器

#include<myhead.h>
 
//消息结构体
typedef struct
{
    long msgtype;        //消息类型
    char data[1024];        //消息正文
}Msg_ds;
 
#define SIZE sizeof(Msg_ds)-sizeof(long)      //正文大小
int main(int argc, const char *argv[])
{
    //1、创建key值
    key_t key;
    if((key = ftok("/", 'k')) == -1)
    {
        perror("ftok error");
        return -1;
    }
//2、创建消息队列
    int msgid; 
    if((msgid = msgget(key, IPC_CREAT|0664)) == -1)
    {
        perror("msgget error");
        return -1;
    }
 
    //3、向消息队列中发送数据
    Msg_ds msg = {.msgtype = 100};
    
    while(1)
    {
        printf("请输入消息内容:");
        fgets(msg.data, sizeof(msg.data), stdin);    //从终端输入字符串
        //将字符串的'\n'换成'\0'
        msg.data[strlen(msg.data)-1] = '\0';
 
        //将消息发送到消息队列中
        if(msgsnd(msgid, &msg, SIZE, 0) == -1)
        {
            perror("msgsnd error");
            return -1;
        }
        if(strcmp(msg.data, "quit") == 0)
        {
            break;
        }
 
    }
    return 0;
}

客户端

#include<myhead.h>
 
//消息结构体
typedef struct
{
    long msgtype;        //消息类型
    char data[1024];        //消息正文
}Msg_ds;
 
#define SIZE sizeof(Msg_ds)-sizeof(long)      //正文大小
int main(int argc, const char *argv[])
{
    //1、创建key值
    key_t key;
    if((key = ftok("/", 'k')) == -1)
    {
        perror("ftok error");
        return -1;
    }
 
    //2、创建消息队列
    int msgid; 
    if((msgid = msgget(key, IPC_CREAT|0664)) == -1)
    {
        perror("msgget error");
        return -1;
    }
 
    //3、从消息队列中取数据
    Msg_ds msg ;
    
    while(1)
    {
         //从消息队列中取数据
        //第一个0表示取消息的类型,每次都是取第一个
        //第二个0表示阻塞方式从消息队列中取数据
        if(msgrcv(msgid, &msg, SIZE, 0 ,0) == -1)
        {
            perror("msgsnd error");
            return -1;
        }
 
        if(strcmp(msg.data, "quit") == 0)
        {
            break;
        }
        printf("rcv: %s\n", msg.data);
    }
    //4、删除消息队列
    msgctl(msgid, IPC_RMID, NULL);
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1064185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring 作用域解析器AnnotationScopeMetadataResolver

博主介绍&#xff1a;✌全网粉丝近5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经…

Java项目防止SQL注入的几种方案

目录 一、什么是SQL注入&#xff1f; 二、Java项目防止SQL注入方式 1、PreparedStatement防止SQL注入 2、mybatis中#{}防止SQL注入 3、对请求参数的敏感词汇进行过滤 4、nginx反向代理防止SQL注入 一、什么是SQL注入&#xff1f; SQL注入即是指web应用程序对用户输入数…

Latent Diffusion Models 论文解读

论文下载地址&#xff1a;https://arxiv.org/pdf/2112.10752.pdf 0 摘要 通过将图像形成过程分解为去噪自编码器的连续应用&#xff0c;扩散模型&#xff08;DM&#xff09;在图像数据及其他方面取得了最先进的合成结果。此外&#xff0c;它们的表述允许一种指导机制来控制图…

HP 喷墨一体机 - “检查墨盒“指示灯闪烁,怎么办?

适用机型&#xff1a; HP PSC 1118、1218 、1318、1350、1406/1408、1508 故障现象&#xff1a; “检查墨盒”指示灯闪烁&#xff0c;“份数”显示的是英文字母“E”&#xff0c;代表 Error&#xff08;错误&#xff09;的意思。&#xff08;无复印份数显示 &#xff09; “检…

想升级macOS Big Sur,但是MacBook内存空间不够该怎么办?

随着使用时间的增长&#xff0c;我们会发现Mac电脑的存储空间越来越少&#xff0c;这时候我们就需要对Mac电脑进行清理&#xff0c;以释放更多的存储空间。那么&#xff0c;Mac空间不足怎么解决呢&#xff1f; 1.清理垃圾文件 Mac空间不足怎么解决&#xff1f;首先要做的就是清…

利用fitnesse实现api接口自动化测试

上午在园子里乱逛&#xff0c;看了不少小伙伴们分享的接口测试方面的知识&#xff0c;仔细想想&#xff0c;我做接口测试也有几个年头了&#xff0c;大家所叙述到的一些经验或多或少&#xff0c;我也曾遇到过&#xff0c;突然意识到知识的点滴积累是多么的重要&#xff0c;我记…

SRTP交叉编译与移植

1 SRTP源码下载 源码下载在github采用的库为libsrtp2.5.0: weget https://github.com/cisco/libsrtp/archive/refs/tags/v2.5.0.tar.gz2 SRTP交叉编译 新增交叉编译脚本&#xff0c;这里需要支持openssl。 ./configure --hostarm-linux-androideabi --prefix$(pwd)/object …

基于python的GUI设计

GUI设计是编程应用的一个重要载体&#xff0c;是软件开发实现的重要步骤&#xff0c;需要重要掌握&#xff0c;不管是C、JAVA、python、matlab等编程语言&#xff0c;都需要GUI界面设计来实验软件开发的前期工作&#xff0c;同时也方便按钮操作。 在设计GUI的过程中&#xff0…

ZRTP协议与原理

1 ZRTP简介 ZRTP&#xff0c;全名Z Real-time Transport Protocol&#xff0c;是一种网络协议&#xff0c;旨在为实时通信提供安全性。与其它安全协议&#xff08;如TLS和IPsec&#xff09;不同&#xff0c;ZRTP专门为实时通信设计&#xff0c;包括音频和视频通话。它是由Phil…

竞赛 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的数学公式识别算法实现 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学…

支付环境安全漏洞介绍

1、平台支付逻辑全流程分析 2、平台支付漏洞如何利用&#xff1f;买东西还送钱&#xff1f; 3、BURP抓包分析修改支付金额&#xff0c;伪造交易状态&#xff1f; 4、修改购物车参数实现底价购买商品 5、SRC、CTF、HW项目月入10W副业之路 6、如何构建最适合自己的网安学习路线 1…

netcore Polly.Core

一、安装包 <PackageReference Include"Polly.Core" Version"8.0.0" /> 二、编写重试 ResiliencePipeline pipeline new ResiliencePipelineBuilder().AddRetry(new RetryStrategyOptions{MaxRetryAttempts 2,Delay TimeSpan.FromSeconds(3),O…

竞赛 机器视觉目标检测 - opencv 深度学习

文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 &#x1f5…

Flink的处理函数——processFunction

目录 一、处理函数概述 二、Process函数分类——8个 &#xff08;1&#xff09;ProcessFunction &#xff08;2&#xff09;KeyedProcessFunction &#xff08;3&#xff09;ProcessWindowFunction &#xff08;4&#xff09;ProcessAllWindowFunction &#xff…

CSDN Markdown

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

数据中台实战(05)-如何统一管理纷繁杂乱的数据指标?

各种类型的元数据有什么用&#xff1f;跟数据中台啥关系&#xff1f; 元数据在指标管理、模型设计、数据质量和成本治理四个领域都发挥作用&#xff0c;这些领域构成数据中台OneData 数据体系。今天逐一了解元数据在上述领域的应用 1 指标管理 指标&#xff0c;一种特定类型…

【Java项目推荐之黑马头条】你的发布文章业务是怎么实现的?

前言 在学习Java的路上还是遇到了很多不错的好项目的&#xff0c;今天分享给大家&#xff0c;希望能对大家面试有所帮助&#xff01; 后续会继续推荐其他好的项目&#xff0c;这次推荐的是B站开源的视频黑马头条项目&#xff0c;来吧学会它一起去虐面试官&#xff01;&#x…

MySQL:增量备份和恢复(5)

介绍 增量备份的特点 MySQL数据库二进制日志对备份的意义 增量备份的优点是没有重复数据&#xff0c;备份量不大&#xff0c;时间短。缺点也很明显&#xff0c;需要上次完全备份及完全备份之后所有的增量备份才能恢复&#xff0c;反推恢复&#xff0c;操作较为繁琐。 Mysql没有…

buildroot添加package包

本文通过一个简单的例子介绍如何在 RK3568的buildroot/package 目录下添加一个自己的 package&#xff08;软件包&#xff09; 一、开发源码工程 首先进入/app 目录下&#xff0c;在该目录下创建一个名为“mypackage”的文件夹&#xff0c;如下所示&#xff1a;   在 mypac…

LVGL_基础控件进度条bar

LVGL_基础控件进度条bar 1、创建进度条控件 // 创建一个 bar 组件(对象)&#xff0c;他的父对象是活动屏幕对象lv_obj_t *bar lv_bar_create(lv_scr_act()); LV_LOG_USER("lv_bar_get_value(bar) %d", lv_bar_get_value(bar));/* 设置位置 */ lv_obj_center(bar);…