linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
一、介绍基于TCP协议通过socket实现网络编程常用API
1、读者如果不是很熟悉,可以先看我之前写的几篇博客,有socket,地址结构的理解,更加方便读者理解
地址分别是:
1)、http://blog.csdn.net/u011068702/article/details/56479927
2)、http://blog.csdn.net/u011068702/article/details/56481754
3)、http://blog.csdn.net/u011068702/article/details/56483784
4)、http://blog.csdn.net/u011068702/article/details/56495562
2、socket(TCP)编程API简介
1)、socket
int socket(int family, int type, int protocol);
socket()打开一个网络通讯端口,如果成功的话,就像open()一样返回一个文件描述符,应用程序可以像读写文件一样用read/write在网络上收发数据,如果socket()调用出错则返回-1。对于IPv4,family参数指定为AF_INET。对于TCP协议,type参数指定为SOCK_STREAM,表示面向流的传输协议。如果是UDP协议,则type参数指定SOCK_DGRAM,表示面向数据报的传输协议。protocol参数的介绍从略,指定为0即可。
int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen);
服务器程序所监听的网络地址和端口号通常是固定不变的,客户端程序得知服务器程序的地址和端口号后就可以向服务器发起连接,因此服务器需要调用bind绑定一个固定的网络地址和端口号,bind()成功返回0,失败返回-1。 bind()的作用是将参数sockfd和myaddr绑定在一起,使sockfd这个用于网络通讯的文件描述符
监听myaddr所描述的地址和端口号。前面讲过,struct sockaddr *是一个通用指针类型,myaddr参
数实际上可以接受多种协议的sockaddr结构体,而它们的长度各不相同,所以需要第三个参数
addrlen指定结构体的长度。我们的程序中对myaddr参数是这样初始化的:
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);
首先将整个结构体清零,然后设置地址类型为AF_INET,网络地址为INADDR_ANY,这个宏表示本地的任意IP地址,因为服务器可能有多个网卡,每个网卡也可能绑定多个IP地址,这样设置可以在所有的IP地址上监听,直到与某个客户端建立了连接时才确定下来到底用哪个IP地址,端口号为SERV_PORT,我们定义为1234。
2)、listen
int listen(int sockfd, int backlog);
典型的服务器程序可以同时服务于多个客户端,当有客户端发起连接时,服务器调用的accept()返回并接受这个连接,如果有大量的客户端发起连接而服务器来不及处理,尚未accept的客户端就处于连接等待状态,listen()声明sockfd处于监听状态,并且最多允许有backlog个客户端处于连接待状态,如果接收到更多的连接请求就忽略。listen()成功返回0,失败返回-1。
3)、accept
int accept(int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen);
三方握手完成后,服务器调用accept()接受连接,如果服务器调用accept()时还没有客户端的连接请求,就阻塞等待直到有客户端连接上来。cliaddr是一个传出参数,accept()返回时传出客户端的地址和端口号。addrlen参数是一个传入传出参数(value-result argument),传入的是调用者提供的缓冲区cliaddr的长度以避免缓冲区溢出问题,传出的是客户端地址结构体的实际长度(有可能没有占满调用者提供的缓冲区)。如果给cliaddr参数传NULL,表示不关心客户端的地址。
我们的服务器程序结构是这样的:
while (1) {
cliaddr_len = sizeof(cliaddr);
connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &cliaddr_len);
n = read(connfd, buf, MAXLINE);
......
close(connfd);
}
整个是一个while死循环,每次循环处理一个客户端连接。由于cliaddr_len是传入传出参数,每次调用accept()之前应该重新赋初值。accept()的参数listenfd是先前的监听文件描述符,而accept()的返回值是另外一个文件描述符connfd,之后与客户端之间就通过这个connfd通讯,最后关闭connfd断开连接,而不关闭listenfd,再次回到循环开头listenfd仍然用作accept的参数。accept()成功返回一个文件描述符,出错返回-1。由于客户端不需要固定的端口号,因此不必调用bind(),客户端的端口号由内核自动分配。注意,客户端不是不允许调用bind(),只是没有必要调用bind()固定一个端口号,服务器也不是必须调用bind(),但如果服务器不调用bind(),内核会自动给服务器分配监听端口,每次启动服务器时端口号都不一样,客户端要连接服务器就会遇到麻烦。
4)、connect
int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen);
客户端需要调用connect()连接服务器,connect和bind的参数形式一致,区别在于bind的参数是自己的地址,而connect的参数是对方的地址。connect()成功返回0,出错返回-1。
5)、Write函数
Ssize_t write(int fd,const void *buf,size_t nbytes);
Write函数将buf中的nbytes字节内容写入到文件描述符中,成功返回写的字节数,失败返回-1.并设置errno变量。在网络程序中,当我们向套接字文件描述舒服写数据时有两种可能:
1、write的返回值大于0,表示写了部分数据或者是全部的数据,这样用一个while循环不断的写入数据,但是循环过程中的buf参数和nbytes参数是我们自己来更新的,也就是说,网络编程中写函数是不负责将全部数据写完之后再返回的,说不定中途就返回了!
2、返回值小于0,此时出错了,需要根据错误类型进行相应的处理。
如果错误是EINTR表示在写的时候出现了中断错误,如果是EPIPE表示网络连接出现了问题。
6)、Read函数
Ssize_t read(int fd,void *buf,size_t nbyte)
Read函数是负责从fd中读取内容,当读取成功时,read返回实际读取到的字节数,如果返回值是0,表示已经读取到文件的结束了,小于0表示是读取错误。
如果错误是EINTR表示在写的时候出现了中断错误,如果是EPIPE表示网络连接出现了问题。
7)、Recv函数和send函数
Recv函数和read函数提供了read和write函数一样的功能,不同的是他们提供了四个参数。
Int recv(int fd,void *buf,int len,int flags)Int send(int fd,void *buf,int len,int flags)
前面的三个参数和read、write函数是一样的。第四个参数可以是0或者是一下组合:
MSG_DONTROUTE:不查找表
是send函数使用的标志,这个标志告诉IP,目的主机在本地网络上,没有必要查找表,这个标志一般用在网络诊断和路由程序里面。
MSG_OOB:接受或者发生带外数据
表示可以接收和发送带外数据。
MSG_PEEK:查看数据,并不从系统缓冲区移走数据
是recv函数使用的标志,表示只是从系统缓冲区中读取内容,而不清楚系统缓冲区的内容。这样在下次读取的时候,依然是一样的内容,一般在有过个进程读写数据的时候使用这个标志。
MSG_WAITALL:等待所有数据
是recv函数的使用标志,表示等到所有的信息到达时才返回,使用这个标志的时候,recv返回一直阻塞,直到指定的条件满足时,或者是发生了错误。
8) 、close的定义如下:
#include<unistd.h>int close(int fd);
关闭读写。
成功则返回0,错误返回-1,错误码errno:EBADF表示fd不是一个有效描述符;EINTR表示close函数被信号中断;EIO表示一个IO错误。
2、客户端和服务端的通信图
3、实现现简单客户端和服务端的通信(基于TCP)
这是实现的是客户端写数据,服务端读取,然后把读取的数据写到客户端显示
1、服务端socket1.c的代码如下
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<netdb.h>
#include<errno.h>#define PORT 2345
#define MAXSIZE 1024int main(int argc, char *argv[])
{int sockfd, newsockfd;//定义服务端套接口数据结构struct sockaddr_in server_addr;struct sockaddr_in client_addr;int sin_zise, portnumber;//发送数据缓冲区char buf[MAXSIZE];//定义客户端套接口数据结构int addr_len = sizeof(struct sockaddr_in);if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){fprintf(stderr, "create socket failed\n");exit(EXIT_FAILURE);}puts("create socket success");printf("sockfd is %d\n", sockfd);//清空表示地址的结构体变量bzero(&server_addr, sizeof(struct sockaddr_in));//设置addr的成员变量信息server_addr.sin_family = AF_INET;server_addr.sin_port = htons(PORT);//设置ip为本机IPserver_addr.sin_addr.s_addr = htonl(INADDR_ANY);if (bind(sockfd, (struct sockaddr*)(&server_addr), sizeof(struct sockaddr)) < 0){fprintf(stderr, "bind failed \n");exit(EXIT_FAILURE);} puts("bind success\n");if (listen(sockfd, 10) < 0){perror("listen fail\n");exit(EXIT_FAILURE);}puts("listen success\n");int sin_size = sizeof(struct sockaddr_in);printf("sin_size is %d\n", sin_size);if ((newsockfd = accept(sockfd, (struct sockaddr *)(&client_addr), &sin_size)) < 0){perror("accept error");exit(EXIT_FAILURE);} printf("accepted a new connetction\n");printf("new socket id is %d\n", newsockfd);printf("Accept clent ip is %s\n", inet_ntoa(client_addr.sin_addr));printf("Connect successful please input message\n");char sendbuf[1024];char mybuf[1024];while (1){int len = recv(newsockfd, buf, sizeof(buf), 0);if (strcmp(buf, "exit\n") == 0)break;fputs(buf, stdout);send(newsockfd, buf, len, 0);memset(sendbuf, 0 ,sizeof(sendbuf));memset(buf, 0, sizeof(buf));}close(newsockfd); close(sockfd);puts("exit success");exit(EXIT_SUCCESS);return 0;
}
2、客户端socket3.c的代码如下
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#include<string.h>
#include<errno.h>#define PORT 2345int count = 1;int main()
{int sockfd;char buffer[2014];struct sockaddr_in server_addr;struct hostent *host;int nbytes;if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){fprintf(stderr, "Socket Error is %s\n", strerror(errno));exit(EXIT_FAILURE);}bzero(&server_addr, sizeof(server_addr));server_addr.sin_family = AF_INET;server_addr.sin_port = htons(PORT);server_addr.sin_addr.s_addr = htonl(INADDR_ANY);//客户端发出请求if (connect(sockfd, (struct sockaddr *)(&server_addr), sizeof(struct sockaddr)) == -1){fprintf(stderr, "Connect failed\n");exit(EXIT_FAILURE);}char sendbuf[1024];char recvbuf[2014];while (1) { fgets(sendbuf, sizeof(sendbuf), stdin);send(sockfd, sendbuf, strlen(sendbuf), 0);if (strcmp(sendbuf, "exit\n") == 0)break;recv(sockfd, recvbuf, sizeof(recvbuf), 0);fputs(recvbuf, stdout);memset(sendbuf, 0, sizeof(sendbuf));memset(recvbuf, 0, sizeof(recvbuf));} close(sockfd);exit(EXIT_SUCCESS);return 0;
}
4、运行结果
5、总结
服务端:socekt -> bind-> listen->accept
客户端:socket->connect
tcp是面向连接的,安全的,无重复的,排列有序的。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 最近在读的一些文章(2018年9月)
这是学习笔记的第 1741 篇文章社会,生活你熬过人生中最黑暗时刻的经历,是你成为强者的必然选择有深度的人都会读的12本书【勾魂摄魄!中国最美的10大门派!】响彻斯坦福的开学演讲:你生来就是要体验疯狂的!17岁!Kaggle史上最年轻Grandmaster诞生:高中自学3年登顶母亲的修…...
2024/5/1 6:50:21 - 【spark】Spark 入门到精通
第一阶段 环境篇 Spark 修炼之道(进阶篇)——Spark 入门到精通:第一节 Spark 1.5.0 集群搭建【点击打开】Spark 修炼之道(进阶篇)——Spark 入门到精通:第二节 Hadoop、Spark 生成圈简介【点击打开】Spark 修炼之道(进阶篇)——Spark 入门到精通:第三节 Spark Intelli…...
2024/5/1 7:52:51 - html总结(一)--表单提交中的input、button、submit的区别
来自:http://www.cnblogs.com/shytong/p/5087147.html最近项目中用了很多的表单提交,发现input、button、submit甚至回车键都可以引发表单提交,下面将分别验证他们在使用中的区别1.input[type=submit]1.1代码如下<form><input name="name"><input …...
2024/5/1 6:23:21 - vue中import和require的用法
Import(模块、文件)引入方式 引入js文件 在用的那一页,引入文件Import tools from ‘./tools.js’相应的js文件,必须暴露出来引入组件 Import Hello from ‘./components/hello’引入外部组件 npm install --save axiosnpm install mint-ui -S//引入全部组件import Vue from …...
2024/4/17 5:13:00 - JMeter从入门到精通
《JMeter从入门到精通》之一——开始你的第一个JMeter脚本 JMeter是一款在国外非常流行和受欢迎的开源性能测试工具,像LoadRunner一样,它也提供了一个利用本地Proxy Server(代理服务器)来录制生成测试脚本的功能,但是这个功能并不好用。所以在本文中介绍一个更为常用的方法…...
2024/4/18 23:26:15 - Node中导入模块require和import傻傻分不清楚
ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。不把require和import整清楚,会在未来的标准编程中死的很难看。require时代…...
2024/4/17 5:12:48 - 技术人生:故事之二十二 软件门派,谁主沉浮?
故事之二十二 软件门派,谁主沉浮? 经常有朋友指责我总使用MS产品,并极力推荐DEPHI或SUN JAVA,而我需要的不是MS或SUN这种公司名称,需要的是功能。选择MS有好处,特别是在开发上,灵活多样,目前操作系统也使用的广泛,特别是在技术上,从广度到深度有明确的思路和技术点…...
2024/5/1 9:19:10 - 微信小程序 —— 考勤管理Demo(前后端及数据库)
源码地址:https://github.com/Zheng-Wenkai/WX_checkAttendanceDemo简要介绍这是一个微信小程序的考勤管理Demo,包括前后端及数据库等内容。如有错误或建议,欢迎指出。前端:微信小程序框架(https://mp.weixin.qq.com/debug/wxadoc/dev/index.html)后端:koa框架(基于exp…...
2024/4/19 16:52:09 - MongoDB进阶(八)Spring整合MongoDB(Spring Data MongoDB)
最近比较忙,忙的都没空理csdn了,今天我继续迈着魔鬼般的步伐,摩擦摩擦……总结下最近学到的MongoDB的知识。1.认识Spring Data MongoDB之前还的确不知道Spring连集成Nosql的东西都实现了,还以为自己又要手动封装一个操作MongoDB的API呢,结果就发现了Spring Data MongoDB。…...
2024/4/20 9:19:40 - 本周游戏评价:修真世界+玄幻书介绍
这两周看了两本书,一本是皇甫奇的书<神座>,另一本则是方想的<修真世界>。 这两个都是好书,但是作为一个游戏开发人员,总觉得后者是可以改编成一款有创意的游戏的书。所以我就在网上搜了一下,果真还是真的有这款游戏,是页游。 在我看小说的时候,我的 瞬间想法…...
2024/4/17 5:12:42 - SQL Server 2008报表服务从入门到精通pdf
下载地址:网盘下载 内容简介编辑《SQL Server 2008报表服务从入门到精通》围绕着SQL Server 2008的Reporting Services,完整介绍了整个报表周期的三个阶段,着重通过动手练习(也称为实践教程),即按照一系列步骤操作的方式来帮助读者掌握Reporting Services堪称完美的开发平台…...
2024/5/1 8:37:19 - 如何实现按钮水平居中
button是一个行内块级元素display:inline-block;所以处理方式很简单,可以用以下两种方式:方式一:<div style="text-align:center"><button>按钮居中</button> </div>方式二:<div> <button style="…...
2024/4/19 0:11:14 - Socket概念与原理
网络编程就是编写程序使两台计算机能交互数据。读者需要对操作系统和TCP/IP协议具有一定的基础。TCP/IP协议相关知识可以参考文章(TCP/IP连接)。一、socket原理学过TCP/IP网络编程惹读者肯定知道socket被称为套接字,那么socket在网络编程中的作用是什么呢?1、套接字在网络编…...
2024/4/20 3:10:37 - 《Mybatis从入门到精通》读书笔记(一)
前言最近在在看刘增辉兄台写的这本Mybatis的入门入籍,一来想系统复习下Mybatis相关的知识,把Mybatis的知识点串一遍,一来想学习下Mybatis的一些高级部分,比如自定义插件,结合springboot使用,源码分析等等。整本书读下来感觉非常顺畅,该讲的地方也都讲到了,Mybatis本身也…...
2024/4/17 5:14:48 - javascript 的button onclick事件不起作用的解决方法
在项目中遇到个问题:servlet向前端返回如下按钮,当course_ID为数字是onclick事件正常,但当course_ID含有字母时onclick事件就不起作用。网上找了很多方法都不管用,最后自己摸索到了一个方法,解决了问题。 【权记于此】 有问题者:out.print("<td><input typ…...
2024/4/11 11:52:42 - 关于VUE中 import 、 export 和 export default 的注意问题
1、import引入一个依赖包,不需要相对路径。import 引入一个自己写的js文件,是需要相对路径的。 示例:import axios from ‘axios’; import AppService from ‘./appService’;2、import什么情况下,要用{}的方式引入,什么情况下,只需要一个变量就行。(1) 使用export抛…...
2024/4/17 5:14:42 - 为什么Html页面表单回车或者Button点击会自动刷新
做H5页面的时候莫名其妙有BUG又找不到,才发现页面自动刷新了。 两个其实都是相同的原因:表单提交。表单中按回车的问题 一个表单下,如果只有一个文本框时,按下回车将会触发表单的提交事件。 解决办法: 1.不要让你的表单只有一个输入框(往表单里加一行隐藏的输入框) <…...
2024/4/17 5:14:48 - 微信小程序准备上线的第一天毙了,开源供学习使用!
视频预览诗音情吐槽 如题所示,贼难受,就好像幸幸苦苦追了一星期的女孩突然对自己说:对不起,我有男票了!不过问题不大,一开始就没好好阅读小程序规矩,怪不了谁。毕竟在人家地盘,就该遵守人家的规矩。 但是花时间心血做的不能这样白白浪费了,毕竟这是好东西啊,对于我们…...
2024/4/17 5:18:00 - 【Android】Android移动应用开发从入门到精通
《Android移动应用开发从入门到精通》涵盖了Android开发从概念、技术到市场推广应用的全部话题,内容包括:Android概览、Android应用程序设计精髓、Android用户界面设计精髓、常用AndroidAPI、更多Android应用程序设计原则、对外发布你的Android应用程序和附录等7个部分。附录…...
2024/4/20 5:17:37 - import 一些已有的模块,会出现红色下划线
导入tensorflow,以及使用print,都会出现红色下划线,然而程序是没有错误的。这种情况其实可以不用管,是可以正常运行的; 但是,如果看着不舒服,可以进行以下过程进行设置即可: file->settings->project->project structure->点击项目路径->点击Excluded。然…...
2024/4/17 5:14:54
最新文章
- 【Mac】mac 安装 prometheus 报错 prometheus: prometheus: cannot execute binary file
1、官网下载 Download | Prometheus 这里下载的是prometheus-2.51.2.linux-amd64.tar.gz 2、现象 解压之后启动Prometheus 启动脚本: nohup ./prometheus --config.fileprometheus.yml > prometheus.out 2>&1 & prometheus.out日志文件ÿ…...
2024/5/1 10:19:24 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Linux mount用法
在Linux系统中,系统自动挂载了以下挂载点: /: xfs文件系统,根文件系统, 所有其他文件系统的挂载点。 /sys: sysfs文件系统,提供内核对象的信息和接口。 /proc: proc文件系统,提供进程和系统信息。 /dev: devtmpfs文件系…...
2024/4/30 3:59:48 - Databend 开源周报第 138 期
Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 支持多表插入 …...
2024/5/1 8:32:06 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/29 23:16:47 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/30 18:14:14 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/30 18:21:48 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/1 4:32:01 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/30 9:43:22 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下: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