libevent(十二)bufferevent filter zlib 压缩通信(二)
使用zlib进行文件传输:
客户端:读取文件 -> 输出过滤器进行数据压缩 -> 发送数据
服务端:读取文件 -> 输入过滤器进行数据解压-> 存储数据
main.cpp
#include <event2/event.h>
#include <event2/listener.h>
#include <string.h>
#ifndef _WIN32
#include <signal.h>
#endif
#include <iostream>
#include <zlib.h>
using namespace std;int main()
{
#ifdef _WIN32 //初始化socket库WSADATA wsa;WSAStartup(MAKEWORD(2, 2), &wsa);
#else//忽略管道信号,发送数据给已关闭的socketif (signal(SIGPIPE, SIG_IGN) == SIG_ERR)return 1;
#endifstd::cout << "test server!\n";//创建libevent的上下文event_base* base = event_base_new();if (base){cout << "event_base_new success!" << endl;}void Server(event_base * base);Server(base);void Client(event_base * base);Client(base);//事件分发处理if (base)event_base_dispatch(base);if (base)event_base_free(base);
#ifdef _WIN32WSACleanup();
#endifreturn 0;
}
zlib_server.cpp
#include <event2/event.h>
#include <event2/listener.h>
#include <event2/bufferevent.h>
#include <event2/buffer.h>
#include <string.h>
#ifndef _WIN32
#include <signal.h>
#endif
#include <iostream>
#include <string>
#include <zlib.h>using namespace std;
#define SPORT 5001struct Status
{bool start = false;FILE* fp = 0;z_stream* p;int recv_num = 0;int write_num = 0;~Status(){if (p){inflateEnd(p);}delete p;p = 0;if (fp){fclose(fp);}fp = 0;}
};bufferevent_filter_result filter_in(evbuffer* s, evbuffer* d, ev_ssize_t limit, bufferevent_flush_mode mode, void* arg)
{//1 接收客户端发送的文件名Status* status = (Status*)arg;if (!status->start){char data[1024] = { 0 };int len = evbuffer_remove(s, data, sizeof(data) - 1);evbuffer_add(d, data, len);return BEV_OK;}//解压evbuffer_iovec v_in[1];//读取数据,不清理缓冲int n = evbuffer_peek(s, -1, NULL, v_in, 1);if (n <= 0) {return BEV_NEED_MORE;}z_stream* p = status->p;//zlib 输入数据大小p->avail_in = v_in[0].iov_len;//zlib 输入数据地址p->next_in = (Byte*)v_in[0].iov_base;//申请输出空间大小evbuffer_iovec v_out[1];evbuffer_reserve_space(d, 4096, v_out, 1);//zlib 输出空间大小p->avail_out = v_out[0].iov_len;//zlib 输出空间地址p->next_out = (Byte*)v_out[0].iov_base;//解压数据int re = inflate(p, Z_SYNC_FLUSH);if (re != Z_OK){cerr << "inflate failed!" << endl;}//解压用了多少数据,从source evbuffer中移除//p->avail_in 未处理数据大小int n_read = v_in[0].iov_len - p->avail_in;//解压后数据大小 传入des evbuffer//p->avail_out 剩余空间大小int n_write = v_out[0].iov_len - p->avail_out;//移除source evbuffer中数据evbuffer_drain(s, n_read);//传入des evbufferv_out[0].iov_len = n_write;evbuffer_commit_space(d, v_out, 1);cout << "Server n_read " << n_read << "\t n_write " << n_write << endl;status->recv_num += n_read;status->write_num += n_write;return BEV_OK;
}static void read_cb(bufferevent* bev, void* arg)
{Status* status = (Status*)arg;if (!status->start){//001接收文件名char data[1024] = { 0 };bufferevent_read(bev, data, sizeof(data) - 1);string out = "out/";out += data;//打开写入文件status->fp = fopen(out.c_str(), "wb");if (!status->fp){cout << "server open " << out << " failed!" << endl;return;}//002 回复OKbufferevent_write(bev, "OK", 2);status->start = true;return;}do{//写入文件char data[1024] = { 0 };int len = bufferevent_read(bev, data, sizeof(data));if (len >= 0){fwrite(data, 1, len, status->fp);fflush(status->fp);}} while (evbuffer_get_length(bufferevent_get_input(bev)) > 0);
}static void event_cb(bufferevent* bev, short events, void* arg)
{cout << "server event_cb " << events << endl;Status* status = (Status*)arg;if (events & BEV_EVENT_EOF){cout << "server event BEV_EVENT_EOF success!" << endl;cout << "Server recv = " << status->recv_num << endl;cout << "Server write = " << status->write_num << endl;delete status;bufferevent_free(bev);}
}static void listen_cb(struct evconnlistener* e, evutil_socket_t s, struct sockaddr* a, int socklen, void* arg)
{cout << "listen_cb" << endl;event_base* base = (event_base*)arg;//1 创建一个bufferevent 用来通信bufferevent* bev = bufferevent_socket_new(base, s, BEV_OPT_CLOSE_ON_FREE);Status* status = new Status();status->p = new z_stream();inflateInit(status->p);//2 添加过滤 并设置输入回调bufferevent* bev_filter = bufferevent_filter_new(bev,filter_in, // 输入过滤函数0, // 输出过滤BEV_OPT_CLOSE_ON_FREE, // 关闭filter同时管理bufferevent0, // 清理回调status // 传递参数);//3 设置回调 读取 事件(处理连接断开) bufferevent_setcb(bev_filter, read_cb, 0, event_cb, status);bufferevent_enable(bev_filter, EV_READ | EV_WRITE);
}void Server(event_base* base)
{cout << "----begin Server----" << endl;//监听端口(socket ,bind,listen 绑定事件)sockaddr_in sin;memset(&sin, 0, sizeof(sin));sin.sin_family = AF_INET;sin.sin_port = htons(SPORT);evconnlistener* ev = evconnlistener_new_bind(base, // libevent的上下文listen_cb, // 接收到连接的回调函数base, // 回调函数获取的参数 argLEV_OPT_REUSEABLE | LEV_OPT_CLOSE_ON_FREE, // 地址重用,evconnlistener关闭同时关闭socket10, // 连接队列大小,对应listen函数(sockaddr*)&sin, // 绑定的地址和端口sizeof(sin));
}
zlib_client.cpp
#include <event2/event.h>
#include <event2/listener.h>
#include <event2/bufferevent.h>
#include <event2/buffer.h>
#include <string.h>
#ifndef _WIN32
#include <signal.h>
#endif
#include <iostream>
#include <zlib.h>
using namespace std;#define FILEPATH "001.txt"struct ClientStatus
{FILE* fp = 0;bool end = false;bool startSend = false;z_stream* z_output = 0;int readNum = 0;int sendNum = 0;~ClientStatus() {if (z_output){deflateEnd(z_output);}delete z_output;z_output = 0;if (fp){fclose(fp);}fp = 0;}
};bufferevent_filter_result filter_out(evbuffer* s, evbuffer* d,ev_ssize_t limit, bufferevent_flush_mode mode, void* arg)
{ClientStatus* sta = (ClientStatus*)arg;//压缩文件,发送文件名消息去掉if (!sta->startSend){char data[1024] = { 0 };int len = evbuffer_remove(s, data, sizeof(data));evbuffer_add(d, data, len);return BEV_OK;}//开始压缩文件(取出buffer中数据的引用)evbuffer_iovec v_in[1];int n = evbuffer_peek(s, -1, 0, v_in, 1);if (n<=0){//调用write回调, 清理空间if (sta->end){return BEV_OK;}//没有数据 BEV_NEED_MORE 不会进入写入回调return BEV_NEED_MORE;}//记下zlib上下文z_stream* p = sta->z_output;if (!p){return BEV_ERROR;}//zlib 输入数据大小p->avail_in = v_in[0].iov_len;//zlib 输入数据地址p->next_in = (Byte*)v_in[0].iov_base;//申请输出空间大小evbuffer_iovec v_out[1];evbuffer_reserve_space(d, 4096, v_out, 1);//zlib 输出空间大小p->avail_out = v_out[0].iov_len;//zlib 输出空间地址p->next_out = (Byte*)v_out[0].iov_base;//压缩int re = deflate(p, Z_SYNC_FLUSH);if (re != Z_OK){cerr << "deflate failed!" << endl;}//压缩用了多少数据,从source evbuffer中移除//p->avail_in 未处理数据大小int n_read = v_in[0].iov_len - p->avail_in;//压缩后数据大小 传入des evbuffer//p->avail_out 剩余空间大小int n_write = v_out[0].iov_len - p->avail_out;//移除source evbuffer中数据evbuffer_drain(s, n_read);//传入des evbufferv_out[0].iov_len = n_write;evbuffer_commit_space(d, v_out, 1);cout << "Client n_read " << n_read << "\t n_write " << n_write << endl;sta->readNum += n_read;sta->sendNum += n_write;return BEV_OK;
}static void client_read_cb(bufferevent* bev, void* arg)
{ClientStatus* sta = (ClientStatus*)arg;//002 接收服务端发送的OK回复char data[1024] = { 0 };int len = bufferevent_read(bev, data, sizeof(data) - 1);if (strcmp(data, "OK") == 0){cout << data << endl;sta->startSend = true;//开始发送文件,触发写入回调bufferevent_trigger(bev, EV_WRITE, 0);}else{bufferevent_free(bev);}cout << "client_read_cb " << len << endl;
}static void client_write_cb(bufferevent* bev, void* arg)
{cout << "client_write_cb" << endl;ClientStatus* s = (ClientStatus*)arg;FILE* fp = s->fp;//判断什么时候清理资源if (s->end){//判断缓冲是否有数据,如果有刷新//获取过滤器绑定的bufferbufferevent* be = bufferevent_get_underlying(bev);//获取输出缓冲及其大小evbuffer* evb = bufferevent_get_output(be);int len = evbuffer_get_length(evb);if (len <= 0){cout << "Client readNum = " << s->readNum << endl;cout << "Client sendNum = " << s->sendNum << endl;//立刻清理 如果缓冲有数据,不会发送bufferevent_free(bev);delete s;return;}//刷新缓冲bufferevent_flush(bev, EV_WRITE, BEV_FINISHED);return;}if (!fp)return;//读取文件char data[1024] = { 0 };int len = fread(data, 1, sizeof(data), fp);if (len <= 0){fclose(fp);s->end = true;//刷新缓冲bufferevent_flush(bev, EV_WRITE, BEV_FINISHED);return;}//发送文件bufferevent_write(bev, data, len);
}static void client_event_cb(bufferevent* be, short events, void* arg)
{cout << "client_event_cb " << events << endl;if (events & BEV_EVENT_CONNECTED){cout << "client BEV_EVENT_CONNECTED" << endl;//001 发送文件名bufferevent_write(be, FILEPATH, strlen(FILEPATH));//初始化文件句柄FILE* fp = fopen(FILEPATH, "rb");if (!fp){cout << "open file " << FILEPATH << " failed!" << endl;}ClientStatus* s = new ClientStatus();s->fp = fp;//初始化zlib上下文s->z_output = new z_stream();deflate(s->z_output, Z_DEFAULT_COMPRESSION);//创建输出过滤bufferevent* bev_filter = bufferevent_filter_new(be, 0, filter_out,BEV_OPT_CLOSE_ON_FREE | BEV_OPT_DEFER_CALLBACKS, 0, s);//设置读取、写入和事件的回调bufferevent_setcb(bev_filter, client_read_cb, client_write_cb, client_event_cb, s);bufferevent_enable(bev_filter, EV_READ | EV_WRITE);}
}void Client(event_base* base)
{cout << "-----begin Client-----" << endl;//连接服务端sockaddr_in sin;memset(&sin, 0, sizeof(sin));sin.sin_family = AF_INET;sin.sin_port = htons(5001);evutil_inet_pton(AF_INET, "127.0.0.1", &sin.sin_addr.s_addr);bufferevent* bev = bufferevent_socket_new(base, -1, BEV_OPT_CLOSE_ON_FREE);//只绑定事件回调,用来确认连接成功bufferevent_enable(bev, EV_READ | EV_WRITE);bufferevent_setcb(bev, 0, 0, client_event_cb, 0);bufferevent_socket_connect(bev, (sockaddr*)&sin, sizeof(sin));//接收回复确认OK
}
Makefile
test_buffer_filter_zlib:main.cpp zlib_server.cpp zlib_client.cppg++ $^ -o $@ -levent -lz./$@clean:rm -rf test_buffer_filter_zlibrm -rf *.o
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 字符函数和字符串函数内存函数
1.求字符串长度 size_tstrlen(const char* str) 用指针接收一个字符串,strlen函数作用是找传入字符串末尾的\0,找一次就1,找到\0后就返回一个int. 2.字符串拷贝函数 char*strcpy(char*destination,const char*source) 将course中的字符拷入destination,包括字符串本身和末…...
2024/4/15 5:45:42 - [NEFU锐格 数据结构]实验八 排序表有关的操作
[NEFU锐格 数据结构]实验八 排序表有关的操作 正经人谁手写排序啊,无脑sort冲冲冲。 如果阶段考上机排序,sort直接乱杀,可惜排不得。 推荐阅读:[数据结构]NEFU 大二上 锐格实验参考 目录 扯犊子Time 锐格 数据结构系列应该就此…...
2024/4/18 11:34:13 - 对于Java的初步认识
Java概述 1.Java语言跨平台原理 Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件), 然后由Java虚 拟机(JVM)对字节码文件解释执行。 所以在不同的操作系统下,只需安装不同的…...
2024/4/15 5:45:52 - 创建第一个Python脚本
创建Python脚本 Python脚本的格式 Python脚本的结构 #coding:utf-8 #脚本头 import os #引入部分 print(os.getcwd()) #业务本分 print(HelloWord)使用PyCharm创建项目 第一步 创建项目 ) 第二步 选择创建路径和python版本…...
2024/4/15 17:29:50 - Linux中如何杀掉任务进程?
跑仿真时,因为各种原因,导致仿真软件没有了反应,而且点击关闭也无法响应。 这该怎么办? 百度了之后,从许多博客/经验/知道中提取了两个有用的命令。 特此记录,以备后续使用。 第一步: ps -…...
2024/4/15 5:45:52 - aaaaaaa
...
2024/4/19 15:00:19 - Django中遇到的问题以及解决方法
文章目录1. SQLite 3.8.3 or later is required (found 3.7.17)2. ModuleNotFoundError: No module named _sqlite33. 导入的django项目不能至直接运行4. 执行python3 manage.py makemigrations5. Forbidden (CSRF cookie not set.)6. pip安装模块出现连接问题7. django.core.e…...
2024/4/19 22:45:06 - 程序设计基础1(Python)-选择结构
7-1 从键盘输入三个数到a,b,c中,按公式值输出 (15 分) 7-2 jmu-python-分段函数 (10 分) 7-3 jmu-python-判断是否构成三角形 (10 分) 7-4 jmu-python-分段函数&数学函数 (15 分) 7-5 jmu-python-成绩转换 (10 分) 7-6 jmu-python-判断闰年 (10 分) 7-7 …...
2024/4/18 12:15:02 - 数字图像处理
PythonOpenCV数字图像处理,彩色空间变换(HSI和RGB空间)前言代码运行结果前言 新人轻点喷~ 在网上看到好多基本都是循环写的,逐个像素操作,比较慢,这里尝试用numpy库的where函数写了一下,速度提…...
2024/4/18 10:54:14 - Makefile写法
Makefile写法...
2024/4/20 3:06:10 - Shell---第四天
1. 使用case实现成绩优良中差的判断 [rootlocalhost ~]# vim score.sh #!/bin/bash read -p "请输入成绩:" score case $score in [0-5][0-9])echo "差!" ;; 6[0-9])echo "中" ;; [7-8][0-9])echo "良&…...
2024/4/17 23:06:13 - 第二十课,高级GLSL
内建变量 已知 gl_Position 顶点着色器的裁剪空间输出位置向量 FragColor 片元着色器的片元输出颜色值 未知 顶点着色器变量 gl_PointSize GLSL定义了一个叫做gl_PointSize输出变量,它是一个float变量,你可以使用它来设置点的宽高(像素…...
2024/4/15 5:45:37 - 数据库02
SQL是关系代数的一种实现方式,它让我们不用考虑数据集的特征来自行编写合适的代码。 例子: 聚合函数只能出现在select部分中 在count中,目的只是为了计算tuple的个数,因此也可以写为: 可以使用多个聚合函数…...
2024/4/20 0:42:03 - 2021年茶艺师(初级)找解析及茶艺师(初级)考试技巧
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:茶艺师(初级)找解析参考答案及茶艺师(初级)考试试题解析是安全生产模拟考试一点通题库老师及茶艺师(初级)操…...
2024/4/15 5:45:52 - 2021年制冷与空调设备运行操作考试技巧及制冷与空调设备运行操作模拟考试题
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年制冷与空调设备运行操作考试技巧为正在备考制冷与空调设备运行操作操作证的学员准备的理论考试专题,每个月更新的制冷与空调设备运行操作模拟考试题祝您顺利通过…...
2024/4/20 6:34:38 - ST7920驱动的LCD12864实现单行反白显示
参考链接: ST7920驱动的LCD12864实现单行反白显示 - jqdy - 博客园 12864液晶模块的详细使用_Rainlee随笔记-CSDN博客_12864使用 GDRAM空间有64256 bit 组成,12864屏幕只使用了上一半的GDRAM内存。 屏幕的第一行全宽字符: 对应的垂直地址…...
2024/4/19 16:04:07 - 性能测试ali
快速写文件dd: 创1T文件:dd if/dev/zero of/mnt/sparse_file.txt bs400M count2500 监控dd进度:watch -n2 kill -USR1 $(pgrep ^dd) 可以考虑用truncate --size 1T file_name # 设定写5T数据的定时任务 # [rootiz2ze9s4hsntd6vayp5ugdz bin]…...
2024/4/16 23:26:12 - Ubuntu(18.04)不能上网解决办法
问题及现象 Ubuntu的虚拟机(18.04)总是莫名就不能上网了。 使用ifconfig -a 查看,ensxx(xx为虚拟机分配的id号)对应的网卡有mac地址,但是没有分配ip地址。 Network中也没有Wired的选项。 临时解决方案 …...
2024/4/15 5:46:28 - 程序员接私活的10个平台和一些建议,别掉坑里去了
点击标题下方的蓝色字体,关注我们真爱,请设置“星标”或点个“在看”作者:程序员新视界来源:http://suo.im/4tacfc什么样的私活不能接1、没有第三方担保的个人对个人的尽量不要接,双方都没保障,出了问题很大的可能撕破脸皮不了了之。2、一上来就直接说给我开发一个什么软…...
2024/4/15 5:46:28 - linux常用命令基础
一、linux常用命令基础 linux系统中运行的特殊程序在用户之间之间充当职着翻译官*用户登录linux系统是,自动加载一个shell程序bash是liunx系统中默认使用的程序 shell的作用 接受用户输入的命令解释命令传递给系统执行 二、linux命令的分类 内部指令外部指令集…...
2024/4/7 0:33:49
最新文章
- 深入刨析 mysql 底层索引结构B+树
文章目录 前言一、什么是索引?二、不同索引结构对比2.1 二叉树2.2 平衡二叉树2.3 B-树2.4 B树 三、mysql 的索引3.1 聚簇索引3.2 非聚簇索引 前言 很多人看过mysql索引的介绍:hash表、B-树、B树、聚簇索引、主键索引、唯一索引、辅助索引、二级索引、联…...
2024/4/20 6:44:48 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - ARM FVP平台的terminal窗口大小如何设置
当启动ARM FVP平台时,terminal窗口太小怎么办?看起来非常累眼睛,本博客来解决这个问题。 首先看下ARM FVP平台对Host主机的需求: 通过上图可知,UART默认使用的是xterm。因此,我们需要修改xterm的默认字体设…...
2024/4/19 23:41:05 - 【自学记录5】【Pytorch2.0深度学习从零开始学 王晓华】第五章 基于Pytorch卷积层的MNIST分类实战
5.1.2 PyTorch2.0中卷积函数实现详解 1、torch.nn.Conv2d in_channels3: 输入的通道数,对应图像的3个颜色通道。 out_channels10: 输出的通道数,即卷积后我们想要得到的特征图的数量。 kernel_size3: 卷积核的大小,这里使用的是3x3的卷积核…...
2024/4/16 7:47:34 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/19 14:24:02 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/19 18:20:22 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/19 11:57:31 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/19 11:57:31 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/19 11:57:52 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/19 11:57:53 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/19 11:58:14 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/19 11:58:20 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/19 23:45:49 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/19 11:58:39 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/19 11:58:51 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/20 3:12:02 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/19 11:59:15 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/19 11:59:23 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/19 11:59:44 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/19 11:59:48 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/19 12:00:06 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/19 16:57:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/19 12:00:25 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/19 12:00:40 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57