更多内容欢迎访问个人网站   http://icodeyou.com

      之前做web应用一直是在本地装个Apache、Tomcat之类的软件,然后把做好的网页文件放在他们的工作目录下(如Apache的htdocs),然后打开浏览器输入127.0.0.1或localhost就可以直接访问了,好神奇,可是为什么,怎么实现的呢,早就知道有Socket(套接字)这个东西,可之前就是没有把这两方面结合起来,今天我们就一起来看一看这究竟是为什么。

       有同学说还不懂Socket是什么,这东西很抽象,在计算机网络原理里讲协议时才会看到,今天咱们完全忽略太严谨、学术的定义,就来看看Socket到底是什么。想象一下,你把电脑的电源插在插座上,你的电脑就可以使用了,为什么?“这不是废话吗!”确实,咱们来想一下这个过程,你拿着插头插在了插座上,然后你的电脑和千里之外的供电厂就能“通信”了,把你的电脑想成是客户端,把千里之外的供电厂想成是服务器,通过插座和很长很长的线缆你们就可以勾搭上了,那么Socket在这其中相当于什么呢?“插座!”没错,就是插座!对于我的电脑来说,我想让它通电工作,我只需要个插座就行了啊,什么插座是什么材质的,线缆是什么型号的,供电厂到底在什么经纬度,电力到底怎么传输,我管它干嘛呢,都跟我没关系!我只要知道我需要的不是整个世界,而是。。。一个插座!读到这里,想必同学已经对“插座”有了很森的理解了;再举一个例子,你和基友的电脑通过有线的方式连上了同一个路由器,这个时候你们就可以直接通过内网IP地址进行访问了,在这个过程中,那个方方的接口(RJ45接口)就是“Socket”,反正插上“Socket”就能用,我不用管到底通过Socket怎么能够实现通信。在计算机编程的网络世界里,作为应用程序,我只需要一个“插座”就可以和任何服务器通信了,想想都有点小激动呢~~~

       接下来要讲的就是,电脑电源需要一个socket去插上,那么发电厂呢,也同样需要一个插座插上去来给你供电——也就是说,发电厂需要一个“插座”!。。。废话,,,,没错,确实是这样,服务器端也需要一个“插座”,只不过它叫做ServerSocket(这看起来像是继承自Socket,我也不知道,待查)。

       有了“插座”(Socket)的概念之后,我们就可以愉快地让电脑(客户端)与发电厂(服务器)通信了。无论是客户端还是服务器,都需要Socket,鉴于咱们今天的题目是“搭建web服务器”,所以咱们接下来就来看一下怎么创建服务器的ServerSocket。说道这里,有同学就会问到了,“难道客户端不需要Socket吗?”,确实需要,因为我们是用浏览器访问本机IP“127.0.0.1”,所以客户端的Socket就由浏览器自己维护了,不需要咱们动手写的。“可是我还是不明白为什么在浏览器里输入127.0.0.1之后就可以看到我的网页了?求解释”好,那咱们慢慢来,先动手编写一个服务器端的ServerSocket吧啦啦啦~

       创建服务器端Socket的步骤如下:

       1、创建ServerSocket对象

            

ServerSocket serverSocket = new ServerSocket(“80”);  //这里只需要指明当前程序监听80号端口就可以了,至于为什么是80,因为我喜欢!“好霸道。。。”因为我们要监听web请求,默认就是80号端口。其实,1-1024端口被操作系统占用了,1025-65535的端口你随便用,只要不会和其他应用程序冲突就可以(别用什么类似3389这么常用的端口就好了。。。)

       2、作为服务器,我要知道,我的使命就是要等待客户端发来请求,也就是客户端发来Socket,我首先要把它Hold住!

           

Socket socket = serverSocket.accept(); //这里需要特别说明一下,accept方法比较特殊,它是一个阻塞方法(block method),因为只要它等不来客户端发来的请求(Socket),它就一直等下去而不会继续执行它下面的代码。唉,此等痴情人怎么跟我一样O(∩_∩)O

       3、客户端要向我表白,给我发来情书,那我作为服务器只要得到它的输入就好了

            

InputStream inputStream = socket.getInputStream(); //注意,客户端发来的表白信息都在socket里面,而不是serverSocket里面,这点要是弄错了,读不到情书内容,活该你单身。(我只有冷笑。。。)

       4、收到了情书,我好想知道里面究竟写了什么啊!迫!不!及!待! 好,开始解析情书内容

       

BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));  //java包装类,只为读到写给我的情书,耶~
String line = “”;
while ( (line = reader.readLine()) != null ){ System.out.println(line); 
}

       5、组装前4步的代码,会要求try catch一下异常,正常捕获就好 下面贴代码

public class MultiWebServer { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(80);System.out.println("正在等待情书中..."); Socket socket = serverSocket.accept();System.out.println("收到情书,我要开始解析!"); InputStream inputStream = socket.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));String line = ""; while ( (line = reader.readLine()) != null ){ System.out.println(line); } } catch (Exception e) { e.printStackTrace(); } } 
}


 

       好了,服务器端的代码咱们写完了,那接下来干啥?不知道。。。不过还记得刚才提出的问题吗——“可是我还是不明白为什么在浏览器里输入127.0.0.1之后就可以看到我的网页了?”那就试试呗,看看咱们如果在浏览器里输入127.0.0.1或者localhost会怎么样

       首先必须把刚才咱们编写的服务器端程序运行起来,然后再打开浏览器,记住,必须先运行服务器端程序,不然情书就发丢了。。。运行服务器端程序,如图:

1PNG

       注意红圈中的两点:由于此时没有客户端发来情书,还记得刚才的accept()阻塞方法吗,它就一直等啊等,等不来我还等,所以红圈中会显示“正在等待情书中…”;那么右面那个箭头指向的是什么意思呢,一个红色停止的图标,也就是说,这个程序现在一直在执行着,没有结束,就好像死循环一样(当然这里绝对不是死循环,其实是阻塞,只是死的样子好像死循环,一会咱们会谈到死循环的,别着急,迟早会死的)

       接下来打开浏览器,在地址栏输入127.0.0.1/index.html后回车,看看浏览器什么反应。。。。。一段时间过去了,浏览器居然一点反应都没有,然后告诉我该页无法显示。我去。。。难道讲了这么多咱们就这么失败了吗,我哭。那就打开eclipse看一眼吧,看看服务器端有没有什么动静啊。打开服务器端一看,卧槽,瞬间世界向我问好了!

2

       注意看红笔标注,我收到了情书!我要开始解析了!那到底情书里是什么内容,别问我,继续向下看。“好熟悉的一段报文,我们好像在哪见过,还记得吗,那是一个春天,你刚发芽儿。。。”没错,这就是计算机网络原理讲的http请求报文。没有学过计网怎么办,没关系,看前两行(其实我们一会用到的也只有第一行而已),“我看到了index.html” 是的,这是刚才我们在浏览器里面输入的地址;第二行,“我也看到了127.0.0.1”,是的,也是我们刚刚在浏览器里面输入的。这说明了什么?激动的我无法说出这到底说明了什么,但想必读者你已经揣测出了什么。

 

       写到这里,作为服务器的我已经收到了从客户端发来的情书,那客户端(浏览器)为什么一点反应都没有呢,甚至过了一会就“该页无法显示”了。因为啊,人家给你写了情书,你没回复人家,人家等了一会觉得没戏了就伤心欲绝了!是啊,喜不喜欢人家都要和他说一声的,给他个答复,哪怕只说:“对不起,你是个好人。。。”

走神了吧?好像说到自己了吧?回来吧,咱们现在的任务呢,就是怎么给人家个答复。

       怎么给,怎么给,怎么给。。。快想快想,既然人家都指明了想和127.0.0.1里的“index.html”表白,那当然就得由index.html来给他答复喽。怎么答,怎么答,怎么答。。。快想快想,既然index.html是个文件,那我读出文件内容后直接发给客户端不就行了吗?可是用什么发?没错,是socket!我们用socket把文件的内容返回给客户端就好了。

那么问题来了。。。“说的非常好,关键是怎么做!”——首先怎么读出文件来?

       假定咱们的index.html在我电脑的E://课件/计算机网络原理/实验/实验1/ 文件夹下,并且假定不会跨域访问,则:

       1、定义一个字符串,用来存咱们的工作目录

            

String base_url = "E://课件/计算机网络原理/实验/实验1/";    <span style="font-family: Arial, Helvetica, sans-serif;">//这只是我本机的目录,至于到了你的电脑上,你可以自己更改</span>

       2、我怎么通过报文知道客户端要和index.html表白?看情书第一行  GET /index.html HTTP/1.1,所以只需要获取情书的第一行字符串并解析出index.html就好办啦,easy,开始吧

            

String line = reader.readLine();  //由于目前只需要第一行,所以咱们就不像上面那样循环读取了,读一行就够了
String url = line.substring(5, line.indexOf("HTTP") - 1);  //用字符串截取函数,把“index.html”这个字符串给揪出来

       3、所以咱们index.html的绝对路径就是 base_url + url 了,终于把我爱的人从人山人海中找到了,看看她怎么答复我吧——获取文件内容

inputStream = new FileInputStream(base_url + url); 
OutputStream outputStream = socket.getOutputStream();   //我要从服务器给客户端答复了,对于服务器来说,这是发出去的内容,所以是Out!
byte[] buffer = new byte[4 * 1024];  //定义字节缓冲区 
int len = 0; 
while ((len = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len);  //很重要!通过socket的outputStream把咱们解析出来的文件内容一字不落的发出去 如果没写这个,导致你爱的跟你表白的抑郁而死,活该你单身
} 
outputStream.flush(); //如果最后一次write时没有把buffer写满,是不会自动发出去的,需要调用flush方法强制把内容从缓冲区发出去

 

       好了,文件读取出来了,也返回给客户端了,亲爱哒他能收到吗?还是一样,务必先运行服务器端程序,然后打开浏览器输入127.0.0.1/index.html 后回车。我紧张,我激动,能不能收到回复,会给我什么样的回复?如图。。。

3 

       为什么会这样???!!! 好吧,看看女神的index.html文件里都写了些什么。。。

<html> <head> <meta charset="utf-8" /> <title>Welcome</title> </head> <body>    <h1>王欢,你是个好人... </h1> </body>
</html>

 

       看到这里,我到底应该高兴还是欲绝。。。高兴的是,我女神给我答复了;欲绝的是。。。那么问题来了,,,学表白技术哪家强?

 

       玩笑归玩笑,那我们的针对这次的浅谈题目是不是就完成了?可以说是的,但是我表白一次失败就算了?我还要表白第二次!(其实我倒不是这样的,这里只能牺牲我的人品来为了大家更好的理解了,呵呵)。好吧,我刚才的工作目录下还有个another.html,这次我来跟她表白吧!好!继续在浏览器中输入127.0.0.1/another.html后回车,期待这次会表白成功。可是我等啊等,浏览器在那里打圈圈,难道浏览器都知道我太花心了,拒绝帮我传递情书?好吧,我再打开浏览器试一下,输入127.0.0.1/index.html,嗯?连第一个女神都不理我了?!我靠!为毛!

       冲动是魔鬼!冷静!我打开eclipse控制台,发现服务器根本就没有“正在等待情书中…”,所以我拜托浏览器发过去的情书当然就发丢了,因为根本没人在接收啊。(窃喜,还好不是因为我太花心了所以浏览器没有帮我投递情书)可是为什么呢?

       冷静吧,分析代码。其实我们可以想到,这段代码执行完一次后不就结束了吗,那我第二次给她发请求她当然会收不到了。对啊,那为了解决这个问题,怎么办呢?跪求红娘支招!

       红娘说:“给服务器程序个死循环吧,让她反复在等客户端的请求就好了。”(其实红娘就一直在死循环中)

       红娘果然是红娘(不然是谁。。。),那就按照她的说法试一试呗!改代码,加入 while (true) 死循环:

public class MultiWebServer { public static void main(String[] args) { String base_url = "E://课件/计算机网络原理/实验/实验1/"; while (true) { try { ServerSocket serverSocket = new ServerSocket(80); System.out.println("正在等待情书中..."); Socket socket = serverSocket.accept(); System.out.println("收到情书,我要开始解析!"); InputStream inputStream = socket.getInputStream(); BufferedReader reader = new BufferedReader( new InputStreamReader(inputStream)); String line = reader.readLine(); System.out.println(line); String url = line.substring(5, line.indexOf("HTTP") - 1);System.out.println("情书解析完毕,我要想想怎么回复了..."); // 获取文件内容 inputStream = new FileInputStream(base_url + url); OutputStream outputStream = socket.getOutputStream(); byte[] buffer = new byte[4 * 1024]; int len = 0; while ((len = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len); } outputStream.flush(); System.out.println("情书请求已发送给客户端");//关闭对应的资源 serverSocket.close(); socket.shutdownInput(); socket.close(); inputStream.close(); reader.close(); outputStream.close(); } catch (Exception e) { } } } 
}

       这样,这位红娘就在这里一直等啊等,来了一个客户端我就处理他的情书请求,处理完这个继续循环以相同的方式等,处理,等,处理。。。。

       好吧,咱们接下来试一下,还是务必先运行服务器端程序,然后先和第一个女神表白,即 127.0.0.1/index.html 还是好朋友的话,就别问我返回结果。。。这个时候打开eclipse的控制台,有没有发现右上角的红色暂停标志可以点击,那就说明咱们的红娘还在兢兢业业的工作着!好了,抓紧时间赶紧向第二个女神表白,看她怎么说, 浏览器输入 127.0.0.1/another.html ,回车!好快啊,女神给我答复了。。。

4

       这。。。(她怎么知道不到十分钟?你是不是突然想到了cookie可以记录客户端的信息,不过咱们这里没用到cookie)还是看看another.html文件里写了什么吧

<html> <head> <meta charset="utf-8" /> <title>Welcome</title> </head> <body>    <h1>我记得你刚和别人表白吧,还不过十分钟,你怎么会是个好人!</h1> </body>
</html>

 

       好吧,我啥也不说了,亲们,我还要向第三个女神表白吗。。。?浏览器主动跟我说:“你表白吧,这次你发多少封表白信我都能给你送到服务器那里,因为她一直在等待着我给她发送呢!”想想,还是算了,人生如此,何须多言。。。

 

       代码都贴出来了,其实看起来挺简单的,但是实际操作中会碰到各种各样的问题。

 

       还有一些要再继续唠叨的边角料:

       1、Q:什么是端口?

             A:这是一个比较抽象的概念,是为了进程间通信,每一个进程只能占用一个端口,也就是说多个进程绝不能同时占用一个端口

       2、Q:既然多个进程不能同时占用一个端口,那么咱们常说的web服务默认使用的是80端口,我电脑有三个浏览器,谷歌,360,IE他们却可以同时上网,这不是端口冲突了吗?

             A:常说的web服务使用80端口指的是服务器监听web请求的端口,是服务器,不是你自己的客户机。一般来说,一个应用程序打开后访问网络本地操作系统为其分配的端口号是随机的,所以三个浏览器虽然同时接收web服务器的回复报文,由于他们三个各自占用的端口不一样,所以不会产生冲突。

       3、Q:既然我的应用程序使用的端口都是随机的,服务器接收到请求后怎么知道它要把应答报文发给谁?

             A:靠Socket!通过刚才的编程实战,在我理解,Socket肯定会至少包括四部分内容:IP地址,端口号,输入流和输出流。也就是说,从客户机发给服务器的Socket里一定会有客户机的IP地址和相应应用程序的端口号,这样服务器自然就知道应该把应答报文发给谁了。

       4、Q:非要使用80端口吗?

             A:不一定。我们刚才在编程的时候确实使用的是80端口,所以我们在浏览器中输入127.0.0.1/index.html,浏览器会默认认为我们会向127.0.0.1主机的80号端口发送请求。但是,这个80端口号只是默认的而已,我们完全可以自己改掉,比如在java代码里把服务器端的ServerSocket改成   ServerSocket serverSocket = new ServerSocket(3456);  这时候我们在浏览器中就要输入 127.0.0.1:3456/index.html 了,效果是一样的,可以浅尝辄止一下。

       5、Q:谁是客户端,谁是服务器?

             A:咱们只有一台电脑,这台电脑既充当着客户端的角色,又充当着服务器的角色。当浏览器请求网页时,它是客户端;当80端口收到请求报文并应答时,它就是服务器。实在不理解,就想想什么是自恋吧,或者,自交也勉强可以。。

       6、Q:还有什么问题,欢迎留言~

 

       对于此用java编写的web服务器的一点简单说明:此段代码非常简单,所以肯定不会是真正web服务器所用到的代码,咱们这个只是能够应答最最基本的web请求,不能检测是否跨域访问等等。不过最基本的,用的socket编程是肯定的。另外,对于此段程序,只给出了处理输入输出流的一种方式。对于输入流,除了咱们刚才用到的BufferedReader包装类,还可以直接用InputStream的read()方法等;对于输出流,除了咱们刚才用的OutputStream的write()方法,还可用BufferedWritter,PrintWritter等,这些都是javaIO的基本用法,根据网络环境,根据所要读取的文件大小来时时变通,这就是仁者见仁智者见智了。

 

       文章写到了最后,不知道该怎么收尾了,安安静静做个程序员吧,挺好。

      源码地址:  https://github.com/icodeu/JavaForWebServer

      个人微信号:qqwanghuan  只为技术交流

更多内容欢迎访问个人网站   http://icodeyou.com


查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. SQL Server分布式事务配置(MSDTC)(远程数据库更新)

    如果你也遇到了类似于OLE DB "SQLNCLI" "未知" "分布"等错误时,请现尝试使用这个地址的方法进行处理,如果无效的话在继续后面的方法http://blog.csdn.net/hb_gx/archive/2007/10/15/1826436.aspxSQL Server数据库以下简称MSSMSS服务器demo1 创…...

    2024/4/21 11:25:02
  2. WEB信息收集与渗透测试思路

    1、确定目标 获得目标域名,真实ip(注意cdn),子域名,旁站,c段。(扩大范围更容易成功) 2、收集网站信息 whois信息,网站负责人信息。(姓名、生日、手机、qq、微信、邮箱等用于社工及制作字典) 操作系统、服务器版本、数据库、脚本语言 3、google黑客 通过各大搜索引擎查…...

    2024/4/21 11:25:01
  3. 送给梨花仙子国的礼物

    年前我办宽带,通过堂弟联系的朋友。有个很好听的名字,叫练梨花,我开玩笑说:这样给你们弄个梨花仙子之国?整天做区块链架构、做游戏风险架构、网络空间安全维护,看来真有些职业习惯了。梨花经理典型的贤妻良母型的,不仅工作认真细致,生意也是萌萌达,冢庭也照顾经营得好…...

    2024/5/1 6:31:16
  4. was机器上部署Hbase服务不可用

    1、bug描述:访问Hbase的程序可以部署到was机器,但是一旦用url访问Hbase,程序一直保持在访问Hbase的那段程序,也不报错,也不返回结果,估计是一旦访问Hbase,WAS机器就重启或者崩溃2、原因分析: was机器的版本是 WAS7.0,安装的JDK为JDK1.6,JDK1.6与Hbase不兼容。...

    2024/4/21 11:24:59
  5. w3m: ubuntu下用命令行浏览网页

    w3m是一个基于文本的网页浏览器,支持多种操作系统,在命令行终端可以很好的支持中文。即使在没有鼠标支持的情况下也可以检查网页的输出。 1. 安装 sudo apt-get install w3m 2. 测试 w3m www.baidu.com3. 操作 感觉与VI很像.4.快捷键 http://wiki.ubuntu.org.cn/W3m%E5%BF%A…...

    2024/4/23 13:40:55
  6. web渗透笔记之信息收集

    0x01 whois查询 站长之家 站长工具 kali里的whois命令 0x02 cms指纹识别 各种在线cms识别工具 whatweb bugscan 云悉 TideFinger 0x03 目录扫描 以下工具为个人常用 字典:御剑 pker多线程后台扫描器爬虫:burpsuite AWVS穷举dirbuster0x04 子域名扫描 最快的方法是先查看是否存…...

    2024/4/21 11:24:58
  7. java 使用org.w3c.dom操作XML文件

    本篇介绍在java中,如何使用org.w3c.dom中的相关内容来操作XML文件。包括:如何在内存中构建XML文件并写入磁盘;如何从磁盘读取XML文件到内存;如何添加注释,读取注释;如何添加属性,读取属性;如何添加子元素,读取子元素;也可以参考如下连接:http://www.cnblogs.com/ITE…...

    2024/4/21 11:24:57
  8. 安装SQLSERVER2005提示事务管理器不可用

    无法在COM+目录中安装和配置程序集C:\Program Files\Microsoft SQL Server\90\NotificationServices\9.0.242\Bin\microsoft.sqlserver.notificationservices.dll。错误:-2146233087错误消息:Unknown error 0x80131501 错误说明:事务管理器不可用。(异常来自 HRESULT:8004…...

    2024/4/27 18:19:18
  9. 如何让自己像打王者荣耀一样发了疯、拼了命、石乐志的学习?

    阶段性反馈机制(如何持之以恒、让自己发疯) 反馈机制是王者荣耀的核心武器,击杀野怪获得金币,击杀敌人之后的画面、音效刺激大脑,不断地努力,获得奖励是我们不断的玩这个游戏的主要原因,也是人的本能,我什么都得不到凭什么这么做?,对记得初二的时候,父亲说如果你能考…...

    2024/4/21 11:24:54
  10. Win2008 R2 WEB 服务器设置之禁用不必要的服务和关闭端口

    这篇文章主要介绍了Win2008 R2 WEB 服务器安全设置指南之禁用不必要的服务和关闭端口,需要的朋友可以参考下安全是重中之重,以最少的服务换取最大的安全。通过只启用需要用到的服务、关闭暂时用不到的服务或不用的服务,这样最大程度来提高安全性。作为web服务器,并不是所有默…...

    2024/4/21 11:24:53
  11. MS DTC服务无法启动解决方法

    具体步骤如下:开始菜单——运行——输入MMC——文件——添加/删除管理单元——点击“独立”选项卡上的“添加”——选择最下面的“组件服务”,点击添加后关闭弹出窗口并确定——展开组件服务至“我的电脑”节点——在“我的电脑”上右键选择属性——选择MSDTC选项卡点击“重置…...

    2024/4/21 11:24:53
  12. 如何保护Lotus Domino Web服务器

    保护Lotus Domino Web服务器原文地址:https://www.ibm.com/developerworks/cn/lotus/tutorials/xpages-themes/马修米尔扎和斯科特罗杰斯 2005年7月19日发布FacebookTwitterLinked InGoogle+E-mail this page许多客户将Lotus Domino用于其Intranet或Internet站点。 在这些环境…...

    2024/4/28 23:08:29
  13. 深度优先搜索VS广度优先搜索 (含算法实现)

    一:深度优先搜索DFS我们以图为例,图是由一些小圆点(顶点)和连接这些小圆点的直线(边)组成。例如:现在我们想要遍历这个图,我们可以从1号顶点开始,遍历就是将图中每一个顶点都访问一次。使用深度优先搜索会得到这么一个结果他们身上标注的数字就是他们的访问次序。这个…...

    2024/5/2 3:15:12
  14. 转:SQL跨域调用远程SP返回的纪录集遇MSDTC分布式异常的处理

    一)针对MSDTC异常,通常解决办法如下, 首先确保在控制面板-添加或删除程序-添加/删除Windows组件-Application server中确保DTC可用. Step1,对处于不同域中的两台server,更新 c:"windows"system32"drivers"etc"hosts ,分别添加对方的IP,Computer Name.…...

    2024/4/20 17:06:55
  15. 《web安全深度剖析》笔记五

    客户端使用<img>标签访问验证码生成函数或类,然后验证码函数生成字符串,保存在SESSION中,并且生成图片文件发送给前台<img>标签显示,用户看到、输入、提交后,将会与SESSION中的字符串相比较,若相等,则是正确的使用登陆日志可以有效防止暴力破解,登陆日志为…...

    2024/4/20 17:06:53
  16. 详解非W3C标准marquee标签

    为什么W3C一直不承认Marquee呢?要说这个标签在广大网页设计人员的眼里也算是把螺丝刀啊!在早年还是我们引以为技术力量作为炫耀的资本呢。可现在不主张用了(这里要题外话:很多人说W3C不许用了,这都是错的,W3C没权限制你不许用或是不能用。),为什么呢那我们要明确这个标…...

    2024/4/21 11:24:51
  17. MSDTC问题集

    一、链接服务器的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。 尊重原著作:本文转载自http://sfwxw456.blog.163.com/blog/static/631359742009321112120248/问题现象在执行分布式事务时,在sql server 2005下收到如下错误:链接服务器"xxxxxxx"的 O…...

    2024/4/21 11:24:50
  18. 小班同学学习经历分享(一)游戏程序员成长札记

    作者信息 昵称:目及远方 课程设计 HumanFramework: https://github.com/cyclons/HumanFramewo 正文 大四毕业,心血来潮,闲余之际,撰文留念。 萌芽 游戏程序员,把这个分成两块的话就是,游戏,程序。 这两个中,只有一个,游戏,在我很小的时候就开始接触,在那个视电子游…...

    2024/4/26 2:24:20
  19. 树莓派3b+web服务器frp内网穿透tomcat部署

    树莓派3b+web服务器frp内网穿透tomcat部署ddns(跟不上现在网络供应商了,可以忽略此节)frpTomcat 最近刚好得闲,某宝买了个树莓派3B+带,本来是想用作人脸识别测试的,无奈性能卡的那叫一个爽,只能放弃改用其它,后来想到自己在阿里云还有有个空闲的域名,干脆挂个web服务,…...

    2024/4/24 13:56:36
  20. 使用分布式事务配置MSDTC的步骤

    使用分布式事务配置MSDTC的步骤:1、启动Distributed Transaction Coordinator服务2、打开“控制面板”-》“管理工具”-》“组件服务”窗口。3、选中“组件服务”-》“计算机”-》“我的电脑”节点4、在菜单栏下面的常用工具栏中,选择"配置我的电脑"的图标5、在弹出…...

    2024/4/21 11:24:47

最新文章

  1. jvm 马士兵 01

    01.JVM是什么 JVM是一个跨平台的标准 JVM只识别class文件&#xff0c;符合JVM规范的class文件都可以被识别...

    2024/5/2 23:14:30
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. jQuery(一)

    文章目录 1. 基本介绍2.原理示意图3.快速入门1.下载jQuery2.创建文件夹&#xff0c;放入jQuery3.引入jQuery4.代码实例 4.jQuery对象与DOM对象转换1.基本介绍2.dom对象转换JQuery对象3.JQuery对象转换dom对象4.jQuery对象获取数据获取value使用val&#xff08;&#xff09;获取…...

    2024/5/1 13:36:17
  4. OpenAI 宣布, ChatGPT 网页端无需注册就能立即使用(2024年4月1日)

    今天&#xff0c;OpenAI宣布&#xff0c;为了让更多人轻松体验人工智能的强大功能&#xff0c;现在无需注册账户即可立即使用 ChatGPT。这一变化是他们使命的核心部分&#xff0c;即让像 ChatGPT 这样的工具广泛可用&#xff0c;让世界各地的人们都能享受到 AI 带来的好处。 网…...

    2024/5/1 13:50:03
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/2 9:28:15
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

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

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

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

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

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

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

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

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

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

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

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

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

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

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

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

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

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

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

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

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

    2022/11/19 21:17:18
  26. 错误使用 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,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
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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