第十四章 网络编程

本章首先概述Python标准库中的一些网络模块。然后讨论SocketServer和相关的类,并介绍同时处理多个连接的各种方法。最后,简单地说一说Twisted,这是一个使用Python编写网络程序的框架,功能丰富而成熟。

几个网络模块

模块socket

网络编程中的一个基本组件是套接字(socket)。
套接字基本上是一个信息通道,两端各有一个程序。
套接字分为两类:服务器套接字和客户端套接字。

为传输数据,套接字提供了两个方法:send和recv(表示receive)。
要发送数据,可调用方法send并提供一个字符串;
要接收数据,可调用recv并指定最多接收多少个字节的数据。

最简单的服务器
服务器套接字先调用方法bind,再调用方法listen来监听特定的地址。
然后,客户端套接字就可连接到服务器了,办法是调用方法connect并提供调用方法bind时指定的地址(在服务器端,可使用函数socket.gethostname获取当前机器的主机名)。这里的地址是一个格式为(host, port)的元组,其中host是主机名(如www.example.com),而port是端口号(一个整数)。
方法listen接受一个参数——待办任务清单的长度(即最多可有多少个连接在队列中等待接纳,到达这个数量后将开始拒绝连接)
服务器套接字开始监听后,就可接受客户端连接了,这是使用方法accept来完成的。这个方法将阻断(等待)到客户端连接到来为止,然后返回一个格式为(client, address)的元组,其中client是一个客户端套接字,而address是前面解释过的地址。服务器能以其认为合适的方式处理客户端连接,然后再次调用accept以接着等待新连接到来。这通常是在一个无限循环中完成的。

import socket
s = socket.socket()host = socket.gethostname()
port = 1234
s.bind((host,port))s.listen(5)
while True:c,addr = s.accept()print('Got connection from',addr)c.send('Thank you for connecting')c.close()

最简单的客户端

import socket
s = socket.socket()host = socket.gethostname()
port = 1234s.connect((host,port))
print(s.recv(1024))

模块urllib和urllib2

1,打开远程文件

from urllib.request import urlopen
import rewebpage = urlopen('https://beyondyanyu.blog.csdn.net')#变量webpage将包含一个类似于文件的对象,这个对象与该网站相关联
text = webpage.read()
m = re.search(b'<a href="([^"]+)".*?>about</a>',text,re.IGNORECASE)
m.group(1)

2,获取远程文件
函数urlopen返回一个类似于文件的对象,可从中读取数据。
可使用urlretrieve,下载文件,并将其副本存储在一个本地文件中。
这个函数不返回一个类似于文件的对象,而返回一个格式为(filename, headers)的元组,其中filename是本地文件的名称(由urllib自动创建),而headers包含一些有关远程文件的信息。
调用函数urlcleanup且不提供任何参数,清空所有临时文件。

获取CSDN的主页,并将其存储到文件C:\webpage.html中。

urlretrieve('https://beyondyanyu.blog.csdn.net', 'C:\\python_webpage.html')

一些实用的函数

函数名称描述
quote(string[, safe])返回一个字符串,其中所有的特殊字符(在URL中有特殊意义的字符)都已替换为对URL友好的版本(如将~替换为%7E)参数safe是一个字符串(默认为’/’),包含不应像这样对其进行编码的字符。
quote_plus(string[, safe])类似于quote,但也将空格替换为加号。
unquote(string)与quote相反。
unquote_plus(string)与quote_plus相反。
urlencode(query[, doseq])将映射(如字典)或由包含两个元素的元组(形如(key,value))组成的序列转换为“使用URL编码的”字符串。

其他模块

模块描述
asynchat包含补充asyncore的功能
asyncore异步套接字处理程序
cgi基本的CGI支持
CookieCookie对象操作,主要用于服务器
cookielib客户端Cookie支持
email电子邮件(包括MIME)支持
ftplibFTP客户端模块
gopherlibGopher客户端模块
httplibHTTP 客户端模块
imaplibIMAP4客户端模块
mailbox读取多种邮箱格式
mailcap通过mailcap文件访问MIME配置
mhlib访问MH邮箱
nntplibNNTP客户端模块
poplibPOP客户端模块
robotparser解析Web服务器robot文件
SimpleXMLRPCServer一个简单的XML-RPC服务器
smtpdSMTP服务器模块
smtplibSMTP客户端模块
telnetlibTelnet客户端模块
urlparse用于解读URL
xmlrpclibXML-RPC客户端支持

SocketServer及相关的类

模块SocketServer是标准库提供的服务器框架的基石,这个框架包括BaseHTTPServer、SimpleHTTPServer、CGIHTTPServer、SimpleXMLRPCServer和DocXMLRPCServer等服务器,它们在基本服务器的基础上添加了各种功能。

SocketServer包含4个基本的服务器:TCPServer(支持TCP套接字流)、UDPServer(支持UDP数据报套接字)以及更难懂的UnixStreamServer和UnixDatagramServer。后面3个你可能不会用到。

使用模块SocketServer编写服务器时,大部分代码都位于请求处理器中。
基本请求处理程序类BaseRequestHandler将所有操作都放在一个方法中——服务器调用的方法handle。这个方法可通过属性self.request来访问客户端套接字。
如果处理的是流(使用TCPServer时很可能如此),可使用StreamRequestHandler类,它包含另外两个属性:self.rfile(用于读取)和self.wfile(用于写入)。

基于SocketServer的极简服务器

from socketserver import TCPServer,StreamRequestHandlerclass Handler(StreamRequestHandler):def handle(self):addr = self.request.getpeername()print('Got connection from',addr)self.wfile.write('Thank you for connecting')server = TCPServer(('',1234),Handler)
server.serve_forever()

多个连接

处理多个连接的主要方式有三种:分叉(forking)、线程化异步I/O
分叉占用的资源较多,且在客户端很多时可伸缩性不佳。

进程:运行着的程序
分叉:对进程(运行的程序)进行分叉时,基本上是复制它,而这样得到的两个进程都将从当前位置开始继续往下执行,且每个进程都有自己的内存副本(变量等)。原来的进程为父进程,复制的进程为子进程。查看函数fork的返回值可以区别父子进程。

在分叉服务器中,对于每个客户端连接,都将通过分叉创建一个子进程。父进程继续监听新连接,而子进程负责处理客户端请求。客户端请求结束后,子进程直接退出。由于分叉出来的进程并行地运行,因此客户端无需等待。

鉴于分叉占用的资源较多(每个分叉出来的进程都必须有自己的内存),还有另一种解决方案:线程化

线程是轻量级进程(子进程),都位于同一个进程中并共享内存。
这减少了占用的资源,但也带来了一个缺点:由于线程共享内存,你必须确保它们不会彼此干扰或同时修改同一项数据,否则将引起混乱。这些问题都属于同步问题。

种避免线程和分叉的办法是使用Stackless Python。它是一个能够快速而轻松地在不同上下文之间切换的Python版本。它支持一种类似于线程的并行方式,名为微线程,其可伸缩性比真正的线程高得多。

使用SocketServer实现分叉和线程化

仅当方法handle需要很长时间才能执行完毕时,分叉和线程化才能提供帮助。请注意,Windows不支持分叉

分叉服务器

from socketserver import TCPSercer,ForkingMixIn,StreamRequestHandler
class Server(ForkingMixIn,TCPSercer):pass
class Handler(StreamRequestHandler):def handle(self):addr = self.request.getpeername()print('Got connection from',addr)self.wfile.write('Thank you for connecting')server = Server(('',1234),Handler)
server.serve_forever()

线程化服务器

from socketserver import TCPServer, ThreadingMixIn, StreamRequestHandler
class Server(ThreadingMixIn, TCPServer): pass
class Handler(StreamRequestHandler):def handle(self):addr = self.request.getpeername()print('Got connection from', addr)self.wfile.write('Thank you for connecting')server = Server(('', 1234), Handler)
server.serve_forever()

使用select和poll实现异步I/O

当服务器与客户端通信时,来自客户端的数据可能时断时续。如果使用了分叉和线程化,这就不是问题:因为一个进程(线程)等待数据时,其他进程(线程)可继续处理其客户端。
然而,另一种做法是只处理当前正在通信的客户端。你甚至无需不断监听,只需监听后将客户端加入队列即可。这就是框架asyncore/asynchat和Twisted采取的方法。
这种功能的基石是函数select或poll)。这两个函数都位于模块select中,其中poll的可伸缩性更高,但只有UNIX系统支持它(Windows不支持)。

使用select的简单服务器
函数select接受三个必不可少的参数和一个可选参数,其中前三个参数为序列,而第四个参数为超时时间(单位为秒)。这三个序列分别表示需要输入和输出以及发生异常(错误等)的连接。
如果没有指定超时时间,select将阻断(即等待)到有文件描述符准备就绪;
如果指定了超时时间,select将最多阻断指定的秒数;
如果超时时间为零,select将不断轮询(即不阻断)。

select返回三个序列(即一个长度为3的元组),其中每个序列都包含相应参数中处于活动状态的文件描述符。

import socket,select
s = socket.socket()
host = socket.gethostname()
port = 1234
s.bind((host,port))
s.listen(5)
inputs = [s]
while True:rs,ws,es = select.select(inputs,[],[])for r in rs:if r is s:c,addr = s.accept()print('Got connection from',addr)inputs.append(c)else:try:data = r.recv(1024)disconnected = not dataexcept socket.error:disconnected = Trueif disconnected:print(r.getpeername(),'disconnected')inputs.remove(r)else:print(data)

select模块中的轮询事件常量

事件名描述
POLLIN文件描述符中有需要读取的数据
POLLPRI文件描述符中有需要读取的紧急数据
POLLOUT文件描述符为写入数据做好了准备
POLLERR文件描述符出现了错误状态
POLLHUP挂起。连接已断开。
POLLNVAL无效请求。连接未打开

使用poll的简单服务器
方法poll使用起来比select容易。调用poll时,将返回一个轮询对象。
使用方法register向这个对象注册文件描述符(或包含方法fileno的对象)。
注册后可使用方法unregister将它们删除。注册对象(如套接字)后,可调用其方法poll(它接受一个可选的超时时间参数)。
这将返回一个包含(fd, event)元组的列表(可能为空),其中fd为文件描述符,而event是发生的事件。event是一个位掩码,这意味着它是一个整数,其各个位对应于不同的事件。

import socket,selects = socket.socket()host = socket.gethostname()
port = 1234
s.bind((host,port))fdmap = {s.fileno():s}s.listen(5)
p = select.poll()
p.register(s)
while True:events = p.poll()for fd, event in events:if fd in fdmap:c, addr = s.accept()print('Got connection from', addr)p.register(c)fdmap[c.fileno()] = celif event & select.POLLIN:data = fdmap[fd].recv(1024)if not data: # 没有数据 --连接已关闭print(fdmap[fd].getpeername(), 'disconnected')p.unregister(fd)del fdmap[fd]else:print(data)

Twisted

Twisted是由Twisted Matrix Laboratories(http://twistedmatrix.com)开发的,这是一个事件驱动的Python网络框架。

使用Twisted创建的简单服务器
事件处理程序是在协议中定义的。
你还需要一个工厂,它能够在新连接到来时创建这样的协议对象。
如果你只想创建自定义协议类的实例,可使用Twisted自带的工厂——模块twisted.internet.protocol中 的Factory类。
编写自定义协议时,将模块twisted.internet.protocol中的Protocol作为超类。
有新连接到来时,将调用事件处理程序connectionMade;
连接中断时,将调用connectionLost。
来自客户端的数据是通过处理程序dataReceived接收的。

from twisted.internet import reactor
from twisted.internet.protocol import Protocol, Factoryclass SimpleLogger(Protocol):def connectionMade(self):print('Got connection from', self.transport.client)def connectionLost(self, reason):print(self.transport.client, 'disconnected')def dataReceived(self, data):print(data)factory = Factory()
factory.protocol = SimpleLoggerreactor.listenTCP(1234, factory)
reactor.run()

使用协议LineReceiver改进后的日志服务器
如果使用telnet连接到这个服务器以便测试它,每行输出可能只有一个字符,是否如此取决于缓冲等因素。
为此,可编写一个自定义协议。模块twisted.protocols.basic包含几个预定义的协议,其中一个就是LineReceiver。
它实现了dataReceived,并在每收到一整行后调用事件处理程序lineReceived。

from twisted.internet import reactor 
from twisted.internet.protocol import Factory 
from twisted.protocols.basic import LineReceiverclass SimpleLogger(LineReceiver):def connectionMade(self): print('Got connection from', self.transport.client)def connectionLost(self, reason): print(self.transport.client, 'disconnected')def lineReceived(self, line): print(line)factory = Factory() 
factory.protocol = SimpleLogger 
reactor.listenTCP(1234, factory) 
reactor.run()

小结

概念描述
套接字和模块socket套接字是让程序(进程)能够通信的信息通道,这种通信可能需要通过网络进行。模块socket让你能够在较低的层面访问客户端套接字和服务器套接字。服务器套接字在指定的地址处监听客户端连接,而客户端套接字直接连接到服务器。
urllib和urllib2这些模块让你能够从各种服务器读取和下载数据,为此你只需提供指向数据源的URL即可。模块urllib是一种比较简单的实现,而urllib2功能强大、可扩展性极强。这两个模块都通过诸如urlopen等函数来完成工作。
框架SocketServer这个框架位于标准库中,包含一系列同步服务器基类,让你能够轻松地编写服务器。它还支持使用CGI的简单Web(HTTP)服务器。如果要同时处理多个连接,必须使用支持分叉或线程化的混合类。
select和poll这两个函数让你能够在一组连接中找出为读取和写入准备就绪的连接。这意味着你能够以循环的方式依次为多个连接提供服务,从而营造出同时处理多个连接的假象。另外,相比于线程化或分叉,虽然使用这两个函数编写的代码要复杂些,但解决方案的可伸缩性和效率要高得多。
Twisted这是Twisted Matrix Laboratories开发的一个框架,功能丰富而复杂,支持大多数主要的网络协议。虽然这个框架很大且其中使用的一些成例看起来宛如天书,但其基本用法简单而直观。框架Twisted也是异步的,因此效率和可伸缩性都非常高。对很多自定义网络应用程序来说,使用Twisted来开发很可能是最佳的选择。

本章介绍的新函数

函数描述
urllib.urlopen(url[, data[, proxies]])根据指定的URL打开一个类似于文件的对象
urllib.urlretrieve(url[,fname[,hook[,data]]])下载URL指定的文件
urllib.quote(string[, safe])替换特殊的URL字符
urllib.quote_plus(string[, safe])与quote一样,但也将空格替换为+
urllib.unquote(string)与quote相反
urllib.unquote_plus(string)与quote_plus相反
urllib.urlencode(query[, doseq])对映射进行编码,以便用于CGI查询中
select.select(iseq, oseq, eseq[, timeout])找出为读/写做好了准备的套接字
select.poll()创建一个轮询对象,用于轮询套接字
reactor.listenTCP(port, factory)监听连接的Twisted函数
reactor.run()启动主服务器循环的Twisted函数
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 【无标题】linux 基于Frambuffer,移植libjpeg,libpng开源库

    一、libjpeg移植 libjpeg 下载 http://www.ijg.org/files/. 选择一个版本。尽量选择新的版本&#xff0c;但不建议选最新版本。 1. 解压 tar -xvf jpegsrc.v9b.tar.gz 2. 解压后进入生成新目录&#xff0c;进入目录jpeg-9b 3. 对libjpeg 工程进行配置 ./conf…...

    2024/4/28 12:48:24
  2. 内网和外网共存时如何访问内网域名

    刚做了一个项目&#xff0c;一台机器同时连接公司内网和外网&#xff0c;在访问内网的域名时&#xff0c;总是访问失败&#xff0c;将外网断掉后&#xff0c;内网访问不存在任何问题。 经过网上搜索&#xff0c;确定问题出现在路由上&#xff0c;内网的域名会自动被外网解析&a…...

    2024/4/28 6:29:52
  3. 11. 盛最多水的容器

    给你 n 个非负整数 a1&#xff0c;a2&#xff0c;...&#xff0c;an&#xff0c;每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最…...

    2024/4/28 2:59:55
  4. 图 = =

    定义&#xff1a; 图就是由一些小圆点&#xff08;成为顶点&#xff09;和连接这些小圆点的直线&#xff08;称为边&#xff09;组成的。例如上图是由5个顶点&#xff08;编号为1、2、3、4、5&#xff09;和5条边&#xff08;1-2、1-3、1-5、2-4、3-5&#xff09;组成。 遍历&a…...

    2024/4/28 15:05:24
  5. 数组对象的深浅拷贝和深浅合并

    对象&&数组的克隆(浅拷贝) 浅拷贝:只拷贝第一级内容,拷贝的对象和原始对象共用相同的第二级(及更深级)的内容 对象 1展开运算符 2.循环:把原始对象中的每一项 赋值给新对象 数组 1.上述方案都可以,2.基于slice处理,3.基于concat处理 对象的克隆(深拷贝) 深拷贝后…...

    2024/4/28 13:35:28
  6. 15.Go程序版本信息(二)

    Go程序版本信息(二) 日期&#xff1a;2022-01-25 11:02:18 作者&#xff1a;JonathanJiang 此文章为个人笔记&#xff0c;有误请指正&#xff0c;推荐读者查看参考资料的原文 一、参考资料 Golang项目中Makefile编写 二、优化 上篇中已经成功将版本信息添加到go项目的程序中…...

    2024/4/28 11:21:55
  7. SpiderFlow可视化爬虫教程1(讲解遇到的特殊情况,什么情况下要爬json?)

    如果一下的文章看不懂细节&#xff0c;不用担心&#xff0c;先照着葫芦画瓢。我们将在下一篇博客&#xff0c;讲解细节。 首先&#xff0c;我们在浏览器打开这个网站。 爬虫地址&#xff1a;http://xxfb.mwr.cn/sq_zdysq.html 打开之后&#xff0c;我们看到了一个表格。 在浏…...

    2024/4/7 17:33:33
  8. Linux 中最好的 CHM 文件阅读器

    CHM 文件是微软编译的 HTML 帮助文件。这是 Microsoft 专有的联机帮助文件格式。在许多 Windows 应用程序中按 F1 打开的许多帮助文件都是 chm 文件。这是一种流行的格式。 chm 文件针对阅读进行了优化&#xff0c;并且这些文件被大量索引。许多电子书都以 chm 格式提供。 这些…...

    2024/4/7 17:33:32
  9. (gdb) info 命令

    程序运行时报错的话&#xff0c;可能会输出变量或函数的地址&#xff0c;例如&#xff1a;0x000007b2a84&#xff0c;而没有变量名和函数名&#xff0c;这时想指导该地址的变量名&#xff0c; 这时可以用gdb中的命令&#xff1a; (gdb) info symbol func_addr 例如&#xff1…...

    2024/4/27 22:54:09
  10. 常见的排序方法(Python实现)

    主程序如下&#xff1a; from random import randint import time import copyGA_MAX 19 #待排序的数据的数量 ga [randint(0, 199) for i in range(GA_MAX)] #待排序的数据 ga_copy [] #用于检测排序结果def print_ga():# print(ga)print(.join(str(i) for i in ga))d…...

    2024/4/27 22:05:43
  11. jdk1.8 + mysql8 + redis + nginx + tomcat 安装教程

    1.win10系统下的jdk安装 参考博客地址: https://blog.csdn.net/qq_43250118/article/details/113324562 1.1.双击jdk安装程序,默认安装到c盘 1.2.安装路径选择,一直点击下一步,完成jdk1.8的安装 1.3.打开cmd控制台,输入javac ,如下图所示表示还需要配置环境变量 1.4.配置…...

    2024/4/28 19:44:52
  12. C# 窗体一直显示在最顶层

    想要实现某个窗体在最前&#xff0c;于是参考了以下文章&#xff1a; https://blog.csdn.net/wmqdn/article/details/8832918 在 public Form1(){InitializeComponent();}之前&#xff0c;输入&#xff1a; #region 窗体在最前[DllImport("user32")]private static…...

    2024/4/28 18:15:42
  13. JAVA springboot+JasperReports+spring-data-JPA demo

    最近做了个关于导出PDF的功能&#xff0c;便写篇博客记录下。 1.准备工作。 我用的开发工具为是eclipse和TIBCO Jaspersoft studio 6.17.0 eclipse软件应该就不用说了&#xff0c;主要是TIBCO Jaspersoft studio 6.17.0,这个软件是用来画报表模板的 软件下载地址:点我跳转 安…...

    2024/4/28 0:29:42
  14. spring官方资料地址

    spring cache: Integrationhttps://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#cache-strategies...

    2024/4/18 5:49:50
  15. jmeter性能测试之设置动态参数,并通过V函数引用

    难点&#xff1a;进行性能测试时&#xff0c;由于是多线程&#xff08;用户&#xff09;同时进行&#xff0c;因此如果按照平时接口测试的设计模式&#xff0c;在登录接口提取token作为静态变量参数并用于下一个接口&#xff0c;这样的话运行脚本时下一个线程&#xff08;用户&…...

    2024/4/28 15:47:51
  16. css小技巧之------防止图片加载以后挤下文本位置

    经常会遇到这样一个问题&#xff1a; 远程加载图片的时候&#xff0c;如果图片本身比较大。加载时间比较长&#xff0c;而图片下面有div内容的时候。会出现图片未加载之前&#xff0c;文本挪上去了。而图片加载完成以后。文本被挤下去。这个体验很不好。 有没有办法实现&…...

    2024/4/28 12:28:05
  17. 深度文本匹配概述

    文章目录深度文本匹配概述文本匹配基于表示的模型基于交互的模型基于预训练模型BERT其他参考深度文本匹配概述 文本匹配 虽然文本匹配在BERT出现以前一直是以两类模型主导&#xff0c;但其实文本匹配时一个广泛的概念&#xff0c;在文本匹配下面还有许多的任务&#xff0c;正…...

    2024/4/28 18:34:46
  18. 安全攻防学习导图

    ...

    2024/4/28 2:55:12
  19. Excel-powerquery里面日期处理示意

    PowerQuery里面日期处理重命名的列 Table.RenameColumns(更改的类型,{{"日期", "pt"}}),添加年 Table.AddColumn(重命名的列, "年", each Text.Middle([pt], 0, 4), type text),添加月 Table.AddColumn(添加年, "月", each Text.Mi…...

    2024/4/28 15:49:04
  20. ES5基于leaflet插件与高德地图完成蚂蚁路径

    1、引入leaflet插件和高德地图 <link rel"stylesheet" href"https://unpkg.com/leaflet1.7.1/dist/leaflet.css" integrity"sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A" crossorigin&…...

    2024/4/28 7:20:25

最新文章

  1. 一篇文章让你搞懂联邦学习算法

    联邦学习(Federated Learning)是一种分布式机器学习技术,它可以在不共享数据的情况下训练模型。这种技术在多个参与方之间协作构建共享的预测模型,同时保持每个参与方的数据本地化,不暴露给其他方。联邦学习特别适用于数据隐私敏感的场景,如医疗、金融和移动设备等。 定…...

    2024/4/28 23:33:32
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 【Ubuntu】在 Windows 和 Ubuntu 之间传输文件

    在 Ubuntu 上安装 Samba&#xff1a; sudo apt-get update sudo apt-get install samba在 Ubuntu 上创建一个共享文件夹并设置权限&#xff1a; mkdir /home/your_username/shared sudo chown nobody:nogroup /home/your_username/shared sudo chmod 0777 /home/your_username/…...

    2024/4/27 8:49:42
  4. 阿里云8核32G云服务器租用优惠价格表,包括腾讯云和京东云

    8核32G云服务器租用优惠价格表&#xff0c;云服务器吧yunfuwuqiba.com整理阿里云8核32G服务器、腾讯云8核32G和京东云8C32G云主机配置报价&#xff0c;腾讯云和京东云是轻量应用服务器&#xff0c;阿里云是云服务器ECS&#xff1a; 阿里云8核32G服务器 阿里云8核32G服务器价格…...

    2024/4/28 23:07:39
  5. C++ //练习 11.14 扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。

    C Primer&#xff08;第5版&#xff09; 练习 11.14 练习 11.14 扩展你在11.2.1节练习&#xff08;第378页&#xff09;中编写的孩子姓到名的map&#xff0c;添加一个pair的vector&#xff0c;保存孩子的名和生日。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#x…...

    2024/4/22 21:19:28
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/28 13:52:11
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/28 13:51:37
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/28 15:57:13
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; 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
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在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