19.1 网络编程的常识
目前主流的网络通讯软件有:微信、QQ、飞信、阿里旺旺、陌陌、探探…
19.1.1 七层网络模型
OSI(Open System Interconnect),即开放式系统互联,是ISO(国际标准化组织)组织在1985年研究的网络互连模型;
OSI七层模型和TCP/IP五层模型的划分如下:
在这里插入图片描述

当发送数据时,需要对发送的内容按照上述七层模型进行层层加包后发送出去。
当接收数据时,需要对接受的内容按照上述七层模型相反的次序层层拆包并显示出来。
19.1.2 相关的协议(笔试题)
(1) 协议的概念
计算机在网络中实现通信就必须有一些约定或者规则,这种约定和规则就叫做通信协议,通信协议可以对速率、传输代码、代码结构、传输控制步骤、出错控制等制定统一的标准;
(2) TCP协议
传输控制协议(Transmission Control Protocol),是一种面向连接的协议,类似于打电话;
建立连接=》进行通信=》断开连接
在传输前采用“三次握手”方式
在通信的整个过程中全程保持连接,形成数据传输通道
保证了数据传输的可靠性和有序性
是一种全双工的字节流通信方式,可以进行大数据量的传输
传输完毕后需要释放已建立的连接,发送数据的效率比较低
在这里插入图片描述
在这里插入图片描述

(3) UDP协议
用户数据报协议(User Datagram Protocol),是一种非面向连接的协议,类似于写信;
在通信的整个过程中不需要保持连接,其实是不需要建立连接;
不保证数据传输的可靠性和有序性;
是一种全双工的数据报通信方式,每个数据报的大小限制在64K内;
发送数据完毕后无需释放资源,开销小,发送数据的效率比较高,速度快;
19.1.3 IP地址(重点)
192.168.1.1 是绝大多数路由器的登录地址,主要配置用户名和密码以及Mac过滤;
IP地址是互联网中的唯一地址标识,本质上是由32位二进制组成的整数,叫做IPV4,当然也有128位二进制组成的整数,叫做IPV6,目前主流的还是IPV4;
日常生活中采用点分十进制表示法来进行IP地址的描述,将每个字节的二进制转化为一个十进制整数,不同的整数之间采用小数点隔开;
如:
0x01020304=》1.2.3.4
查看IP地址的方式:
Windows系统:在dos窗口中使用ipconfig或ipconfig/all命令即可
Unix/linux系统:在终端窗口中使用ifconfig或/sbin/ifconfig命令即可
特殊的地址:
本地回环地址(hostAddress):127.0.0.1 主机名(hostName):localhost
19.1.4 端口号(重点
IP地址:可以定位到具体某一台设备
端口号:可以定位到该设备中具体某一个进程
端口号本质上是16位二进制组成的整数,表示范围是:0-65535,其中0-1024之间的端口号通常被系统占用,建议编程从1025开始使用;
特殊的端口:
HTTP:80 FTP:21 Oracle:1521 MySQL:3306 Tomcat:8080
网络编程需要提供:IP地址+端口号,组合在一起叫做网络套接字:Socket
19.2 基于tcp协议的编程模型(重点)
19.2.1 C/S架构的简介(Client Server)
在C/S模式下客户向服务器发出服务请求,服务器接收请求后提供服务;
例如:在一个酒店中,顾客想服务员点菜,服务员把点菜单通知厨师,厨师按点菜单做好菜后让服务员端给客户,这就是一种C/S工作方式,如果把酒店看作一个系统,服务员就是客户端,厨师就是服务器,这种系统分工与协同工作的方式就是C/S的工作方式;
客户端部分:为每个用户所专有的,负责执行前台功能;
服务器部分:由多个用户共享的信息与功能,招待后台服务;
19.2.2 编程模型
服务器:
(1) 创建ServerSocket类型的对象并提供端口号;
(2) 等待客户端的连接请求,调用accept()方法;
(3) 使用输入输出流进行通信;
(4) 关闭Socket;
客户端:
(1) 创建Socket类型的对象并提供服务器的IP地址和端口号;
(2) 使用输入输出流进行通信;
(3) 关闭Socket;
19.2.3 相关类和方法的解析
(1) ServerSocket类
java.net.ServerSocket类主要用于描述服务器套接字信息(大插排);
常用的方法如下:

方法声明 功能介绍
SerSocket(int port) 根据参数指定的端口号来构造对象
Socket accept() 侦听并接收到此套接字的连接请求
void close() 用于关闭套接字

(2) Socket类
java.net.Socket类主要用于描述客户端套接字,是两台机器间通信的端点(小插排)
常用的方法如下:

方法声明 功能介绍
Socket(String host,int port) 根据指定主机名和端口来构造对象
InputStream getInputStream() 用于获取当前套接字的输入流
OutputStream getOutputStream() 用于获取当前套接字的输出流
void close() 用于关闭套接字

(3) 注意事项
客户端Socket与服务器端Socket对象,都包括输入和输出流;
客户端socket.getInputStream()连接于服务器socket.getOutputStream();
客户端socket.getOutputStream()连接于服务器socket.getInputStream();
下面的代码实现了客户端向服务器发送数据以及服务器向客户端回发数据:

package task19;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;public class ServerStringTest {public static void main(String[] args) {ServerSocket ss= null;Socket s= null;BufferedReader br=null;PrintStream ps=null;try {//1.创建ServerSocket类型的对象并提供端口号ss = new ServerSocket(5000);//2.等待客户端的连接请求,调用accept方法System.out.println("等待客户端的连接请求。。。");//当没有客户端连接时,则服务器阻塞在accept方法的调用这里s = ss.accept();System.out.println("客户端连接成功!");//3.使用输入输出流进行通信//实现对客户端发来字符串内容的接收br = new BufferedReader(new InputStreamReader(s.getInputStream()));//当没有数据发来时,下面的方法会形成阻塞String s1=br.readLine();System.out.println("客户端发来的字符串内容是:"+s1);//实现服务器向客户端回发字符串内容"I received"ps=new PrintStream(s.getOutputStream());ps.print("I received!");System.out.println("服务器发送数据成功!");} catch (IOException e) {e.printStackTrace();} finally {//4.关闭Socket并释放有关资源if(null!=ps){ps.close();}if(null !=br){try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != s) {try {s.close();} catch (IOException e) {e.printStackTrace();}}if (null != ss) {try {ss.close();} catch (IOException e) {e.printStackTrace();}}}}
}
package task19;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;public class ClientStringTest {public static void main(String[] args) {Socket s=null;PrintStream ps=null;Scanner sc=null;BufferedReader br=null;try {//1.创建Socket类型的对象并提供服务器的主机名和端口号s=new Socket("127.0.0.1",5000);System.out.println("连接服务器成功!");//2.使用输入输出流进行通信//Thread.sleep(10000);//实现客户端发送的内容由客户从键盘输入System.out.println("请输入要发送的数据内容:");sc=new Scanner(System.in);String str1=sc.next();//实现客户端向服务器发送字符串内容"hello"ps=new PrintStream(s.getOutputStream());
//            ps.println("hello");ps.println(str1);System.out.println("客户端发送内容成功!");//实现接收服务器发来的字符串内容并打印br=new BufferedReader(new InputStreamReader(s.getInputStream()));String str2=br.readLine();System.out.println("服务器回发的消息是:"+str2);} catch (IOException/* | InterruptedException*/ e) {e.printStackTrace();} finally {//3.关闭Socket并释放有关的资源if (br != null) {try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != ps) {ps.close();}if(null!=sc){sc.close();}if (null != s) {try {s.close();} catch (IOException e) {e.printStackTrace();}}}}
}

下面的代码则实现了客户端与服务器不断地通信:

package task19;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;/*** 客户端和服务器不断通信的实现*/
public class ServerStringTest02 {public static void main(String[] args) {ServerSocket ss= null;Socket s= null;BufferedReader br=null;PrintStream ps=null;try {//1.创建ServerSocket类型的对象并提供端口号ss = new ServerSocket(8888);//2.等待客户端的连接请求,调用accept方法System.out.println("等待客户端的连接请求。。。");//当没有客户端连接时,则服务器阻塞在accept方法的调用这里s = ss.accept();System.out.println("客户端连接成功!");//3.使用输入输出流进行通信br = new BufferedReader(new InputStreamReader(s.getInputStream()));ps = new PrintStream(s.getOutputStream());while (true) {//实现对客户端发来字符串内容的接收//当没有数据发来时,下面的方法会形成阻塞String s1 = br.readLine();System.out.println("客户端发来的字符串内容是:" + s1);//当客户端发来的内容为"bye"时,则聊天结束if ("bye".equalsIgnoreCase(s1)){System.out.println("客户端已下线!");break;}//实现服务器向客户端回发字符串内容"I received!"ps.println("I received!");System.out.println("服务器发送数据成功!");}} catch (IOException e) {e.printStackTrace();} finally {//4.关闭Socket并释放有关资源if(null!=ps){ps.close();}if(null !=br){try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != s) {try {s.close();} catch (IOException e) {e.printStackTrace();}}if (null != ss) {try {ss.close();} catch (IOException e) {e.printStackTrace();}}}}
}
package task19;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;/*** 客户端和服务器不断通信的实现*/
public class ClientStringTest02 {public static void main(String[] args) {Socket s=null;PrintStream ps=null;Scanner sc=null;BufferedReader br=null;try {//1.创建Socket类型的对象并提供服务器的主机名和端口号s=new Socket("127.0.0.1",8888);System.out.println("连接服务器成功!");//2.使用输入输出流进行通信sc = new Scanner(System.in);ps = new PrintStream(s.getOutputStream());br = new BufferedReader(new InputStreamReader(s.getInputStream()));while(true) {//Thread.sleep(10000);//实现客户端发送的内容由客户从键盘输入System.out.println("请输入要发送的数据内容:");String str1 = sc.next();//实现客户端向服务器发送字符串内容"hello"
//              ps.println("hello");ps.println(str1);System.out.println("客户端发送内容成功!");//当发送的内容为"bye"时,则聊天结束if ("bye".equalsIgnoreCase(str1)) {System.out.println("聊天结束");break;}//实现接收服务器发来的字符串内容并打印String str2 = br.readLine();System.out.println("服务器回发的消息是:" + str2);}} catch (IOException/* | InterruptedException*/ e) {e.printStackTrace();} finally {//3.关闭Socket并释放有关的资源if (br != null) {try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != ps) {ps.close();}if(null!=sc){sc.close();}if (null != s) {try {s.close();} catch (IOException e) {e.printStackTrace();}}}}
}

当同时执行多个任务时需要多线程, 那么就需要多个客户端同时连接一个服务器:
下面是五个类,各有用处,需好好查看体会:

package task19;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.Socket;public class ServerThread extends Thread{private Socket s;public ServerThread(Socket s){this.s=s;}@Overridepublic void run() {BufferedReader br=null;PrintStream ps=null;try {// 3.使用输入输出流进行通信br = new BufferedReader(new InputStreamReader(s.getInputStream()));ps = new PrintStream(s.getOutputStream());while (true) {//实现对客户端发来字符串内容的接收//当没有数据发来时,下面的方法会形成阻塞String s1 = br.readLine();InetAddress inetAddress=s.getInetAddress();System.out.println("客户端"+inetAddress+"发来的字符串内容是:" + s1);//当客户端发来的内容为"bye"时,则聊天结束if ("bye".equalsIgnoreCase(s1)){System.out.println("客户端"+inetAddress+"已下线!");break;}//实现服务器向客户端回发字符串内容"I received!"ps.println("I received!");System.out.println("服务器发送数据成功!");}} catch (IOException e) {e.printStackTrace();} finally {if(null!=ps){ps.close();}if(null !=br){try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != s) {try {s.close();} catch (IOException e) {e.printStackTrace();}}}}
}
package task19;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;/*** 客户端和服务器不断通信的实现*/
public class ServerStringTest02 {public static void main(String[] args) {ServerSocket ss= null;Socket s= null;try {//1.创建ServerSocket类型的对象并提供端口号ss = new ServerSocket(8880);//2.等待客户端的连接请求,调用accept方法while(true) {System.out.println("等待客户端的连接请求。。。");//当没有客户端连接时,则服务器阻塞在accept方法的调用这里s = ss.accept();System.out.println("客户端"+s.getInetAddress()+"连接成功!");//每当有一个客户端连接成功,则需要启动一个新的线程为之服务new ServerThread(s).start();}} catch (IOException e) {e.printStackTrace();} finally {//4.关闭Socket并释放有关资源if (null != ss) {try {ss.close();} catch (IOException e) {e.printStackTrace();}}}}
}
package task19;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;/*** 客户端和服务器不断通信的实现*/
public class ClientStringTest02 {public static void main(String[] args) {Socket s=null;PrintStream ps=null;Scanner sc=null;BufferedReader br=null;try {//1.创建Socket类型的对象并提供服务器的主机名和端口号s=new Socket("127.0.0.1",8880);System.out.println("连接服务器成功!");//2.使用输入输出流进行通信sc = new Scanner(System.in);ps = new PrintStream(s.getOutputStream());br = new BufferedReader(new InputStreamReader(s.getInputStream()));while(true) {//Thread.sleep(10000);//实现客户端发送的内容由客户从键盘输入System.out.println("请输入要发送的数据内容:");String str1 = sc.next();//实现客户端向服务器发送字符串内容"hello"
//              ps.println("hello");ps.println(str1);System.out.println("客户端发送内容成功!");//当发送的内容为"bye"时,则聊天结束if ("bye".equalsIgnoreCase(str1)) {System.out.println("聊天结束");break;}//实现接收服务器发来的字符串内容并打印String str2 = br.readLine();System.out.println("服务器回发的消息是:" + str2);}} catch (IOException/* | InterruptedException*/ e) {e.printStackTrace();} finally {//3.关闭Socket并释放有关的资源if (br != null) {try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != ps) {ps.close();}if(null!=sc){sc.close();}if (null != s) {try {s.close();} catch (IOException e) {e.printStackTrace();}}}}
}
package task19;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;/*** 客户端和服务器不断通信的实现*/
public class ClientStringTest03 {public static void main(String[] args) {Socket s=null;PrintStream ps=null;Scanner sc=null;BufferedReader br=null;try {//1.创建Socket类型的对象并提供服务器的主机名和端口号s=new Socket("127.0.0.1",8880);System.out.println("连接服务器成功!");//2.使用输入输出流进行通信sc = new Scanner(System.in);ps = new PrintStream(s.getOutputStream());br = new BufferedReader(new InputStreamReader(s.getInputStream()));while(true) {//Thread.sleep(10000);//实现客户端发送的内容由客户从键盘输入System.out.println("请输入要发送的数据内容:");String str1 = sc.next();//实现客户端向服务器发送字符串内容"hello"
//              ps.println("hello");ps.println(str1);System.out.println("客户端发送内容成功!");//当发送的内容为"bye"时,则聊天结束if ("bye".equalsIgnoreCase(str1)) {System.out.println("聊天结束");break;}//实现接收服务器发来的字符串内容并打印String str2 = br.readLine();System.out.println("服务器回发的消息是:" + str2);}} catch (IOException/* | InterruptedException*/ e) {e.printStackTrace();} finally {//3.关闭Socket并释放有关的资源if (br != null) {try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != ps) {ps.close();}if(null!=sc){sc.close();}if (null != s) {try {s.close();} catch (IOException e) {e.printStackTrace();}}}}
}
package task19;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;/*** 客户端和服务器不断通信的实现*/
public class ClientStringTest04 {public static void main(String[] args) {Socket s=null;PrintStream ps=null;Scanner sc=null;BufferedReader br=null;try {//1.创建Socket类型的对象并提供服务器的主机名和端口号s=new Socket("127.0.0.1",8880);System.out.println("连接服务器成功!");//2.使用输入输出流进行通信sc = new Scanner(System.in);ps = new PrintStream(s.getOutputStream());br = new BufferedReader(new InputStreamReader(s.getInputStream()));while(true) {//Thread.sleep(10000);//实现客户端发送的内容由客户从键盘输入System.out.println("请输入要发送的数据内容:");String str1 = sc.next();//实现客户端向服务器发送字符串内容"hello"
//              ps.println("hello");ps.println(str1);System.out.println("客户端发送内容成功!");//当发送的内容为"bye"时,则聊天结束if ("bye".equalsIgnoreCase(str1)) {System.out.println("聊天结束");break;}//实现接收服务器发来的字符串内容并打印String str2 = br.readLine();System.out.println("服务器回发的消息是:" + str2);}} catch (IOException/* | InterruptedException*/ e) {e.printStackTrace();} finally {//3.关闭Socket并释放有关的资源if (br != null) {try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != ps) {ps.close();}if(null!=sc){sc.close();}if (null != s) {try {s.close();} catch (IOException e) {e.printStackTrace();}}}}
}

19.3 基于UDP协议的编程模型(熟悉)
19.3.1 编程模型
接收方:
(1) 创建DatagramSocket类型的对象并提供端口号;
(2) 创建DatagramPacket类型的对象并提供缓冲区;
(3) 通过Socket接收数据内容存放到Packet,调用receive方法;
(4) 关闭Socket;
发送方:
(1) 创建DatagramSocket类型的对象(无需提供端口号);
(2) 创建DatagramPacket类型的对象并提供接收方的通信地址;
(3) 通过Socket将Packet中的数据内容发送出去,调用send方法;
(4) 关闭Socket;
19.3.2 相关类和方法的解析
(1) DatagramSocket类
java.net.DatagramSocket类主要用于描述发送和接收数据报的套接字(邮局)。
换句话说,该类就是包裹投递服务的发送和接收点。
常用的方法如下:

方法声明 功能介绍
DatagramSocket() 使用无参的方式构造对象
DatagramSocket(int port) 根据参数指定的端口号来构造对象
void receive(DatagramPacket p) 用于接收数据报存放到参数指定的位置
void send(DatagramPacket p) 用于将参数指定的数据报发送出去
void close() 关闭Socket并释放相关资源

(2) DatagramPacket类
java.net.DatagramPacket类主要用于描述数据报,数据报用来实现无连接包裹投递服务。
常用的方法如下:

方法声明 功能介绍
DatagramPacket(byte[] buf,int length) 根据参数指定的数组来构造对象,用于接收长度为length的数据报
DatagramPacket(byte[] buf,int length,InetAddress address,int port) 根据参数指定数组来构造对象,将数据报发送到指定地址和端口
InetAdress getAddress() 用于获取发送方或接收方的通信地址
int getPort() 用于获取发送方或接收方的端口号
int getLength() 用于获取发送数据或接收数据的长度

(3) InetAddress类
java.net.InetAddress类主要用于描述互联网通信地址信息。
常用的方法如下:

方法声明 功能介绍
static InetAddress getLocalHost() 用于获取当前主机的通信地址
static InetAddress getByName(String host) 根据参数指定的主机名获取通信地址

下面通过代码来实现UDP的发送与接收:
最基本的代码为发送方发送一个hello,接收方接收:

package task19;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;public class ReceiveTest {public static void main(String[] args) {DatagramSocket ds=null;try {//1.创建DatagramSocket类型的对象并提供端口号ds=new DatagramSocket(8888);//2.创建DatagramPacket类型的对象并提供缓冲区byte[] bArr=new byte[20];DatagramPacket dp=new DatagramPacket(bArr,bArr.length);//3.通过Socket接收数据内容存放到Packet里面,调用receive方法System.out.println("等待数据的到来。。。");ds.receive(dp);System.out.println("接收到的数据内容是:"+new String(bArr,0,dp.getLength())+"!");} catch (IOException e) {e.printStackTrace();} finally {//4.关闭Socket并释放有关的资源if (ds != null) {ds.close();}}}
}
package task19;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;public class SendTest {public static void main(String[] args) {DatagramSocket ds= null;try {//1.创建DatagramSocket类型的对象ds = new DatagramSocket();//2.创建DatagramPacket类型的对象并提供接收方的通信地址和端口号byte[] bArr="hello".getBytes();DatagramPacket dp=new DatagramPacket(bArr,bArr.length, InetAddress.getLocalHost(),8888);//3.通过Socket发送Packet,调用send方法ds.send(dp);System.out.println("发送数据成功!");} catch (IOException e) {e.printStackTrace();} finally {//4.关闭Socket并释放有关的资源if (ds != null) {ds.close();}}}
}
发送结果为:
发送数据成功!
接收结果为:
等待数据的到来。。。
接收到的数据内容是:hello!

下面来实现一下接收方回发数据:

package task19;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;public class ReceiveTest {public static void main(String[] args) {DatagramSocket ds=null;try {//1.创建DatagramSocket类型的对象并提供端口号ds=new DatagramSocket(8888);//2.创建DatagramPacket类型的对象并提供缓冲区byte[] bArr=new byte[20];DatagramPacket dp=new DatagramPacket(bArr,bArr.length);//3.通过Socket接收数据内容存放到Packet里面,调用receive方法System.out.println("等待数据的到来。。。");ds.receive(dp);System.out.println("接收到的数据内容是:"+new String(bArr,0,dp.getLength())+"!");//实现将字符串内容"I received!"回发过去byte[] bArr2="I received".getBytes();DatagramPacket dp2=new DatagramPacket(bArr2,bArr2.length,dp.getAddress(),dp.getPort());ds.send(dp2);System.out.println("回发数据成功!");} catch (IOException e) {e.printStackTrace();} finally {//4.关闭Socket并释放有关的资源if (ds != null) {ds.close();}}}
}
package task19;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;public class SendTest {public static void main(String[] args) {DatagramSocket ds= null;try {//1.创建DatagramSocket类型的对象ds = new DatagramSocket();//2.创建DatagramPacket类型的对象并提供接收方的通信地址和端口号byte[] bArr="hello".getBytes();DatagramPacket dp=new DatagramPacket(bArr,bArr.length, InetAddress.getLocalHost(),8888);//3.通过Socket发送Packet,调用send方法ds.send(dp);System.out.println("发送数据成功!");//接收回发的数据内容byte[] bArr2=new byte[20];DatagramPacket dp2=new DatagramPacket(bArr2,bArr2.length);ds.receive(dp2);System.out.println("接收到的回发消息是:"+new String(bArr2,0,dp2.getLength()));} catch (IOException e) {e.printStackTrace();} finally {//4.关闭Socket并释放有关的资源if (ds != null) {ds.close();}}}
}
发送方结果为:
发送数据成功!
接收到的回发消息是:I received
接收方结果为:
等待数据的到来。。。
接收到的数据内容是:hello!
回发数据成功!

19.4 URL类(熟悉)
19.4.1 基本概念
java.net.URL(Uniform Resource Identifier)类主要用于表示统一的资源定位器,也就是指向万维网上“资源”的指针,这个资源可以是简单的文件或目录,也可以是对复杂对象的引用,例如对数据库或搜索引擎的查询等;
通过URL可以访问万维网上的网络资源,最常见的就是www和ftp站点,浏览器通过解析给的的URL可以在网络上查找相应的资源。
URL的基本结构如下:
<传输协议>://<主机名>:<端口号>/<资源地址>
19.4.2 常用的方法

方法声明 功能介绍
URL(String spec) 根据参数指定的字符串信息构造对象
String getProtocol 获取协议名称
String getHost() 获取主机名称
int getPort() 获取端口号
String getPath() 获取路径信息
String getFile() 获取文件名
URLConnection openConnection() 获取URLConnection类的实例

19.4.3 URLConnection类
(1) 基本概念
java.net.URLConnection类是个抽象类,该类表示应用程序和URL之间的通信链接的所有类的超类,主要实现类有支持HTTP特有功能的HttpURLConnection类。
(2) HttpURLConnection类的常用方法

方法声明 功能介绍
InputStream getInputStream() 获取输入流
void disconnect() 断开连接

下面用代码来演示一下URL相关方法的使用:

package task19;import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;public class URLTest {public static void main(String[] args) {try {//1.使用参数指定的字符串来构造对象URL url=new URL("https://www.lagou.com/");//2.获取相关信息并打印出来System.out.println("获取到的协议名称是:"+url.getProtocol());System.out.println("获取到的主机名称是:"+url.getHost());System.out.println("获取到的端口号是:"+url.getPort());  //端口号获取失败//3.建立连接并读取相关信息打印出来HttpURLConnection urlConnection=(HttpURLConnection) url.openConnection();InputStream inputStream=urlConnection.getInputStream();BufferedReader br=new BufferedReader(new InputStreamReader(inputStream));String str=null;while ((str=br.readLine())!=null){System.out.println(str);}br.close();//断开连接urlConnection.disconnect();} catch (Exception e) {e.printStackTrace();}}
}
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 随机信号的特征—(自相关函数\互相关函数、协方差矩阵、相关矩阵\相关系数矩阵\相关系数)

    在学习概率统计之前,我学习的都是确定的函数。概率统计讨论了一次取值时获得的值是不确定的,而随机过程讨论了不确定会发生哪个时间函数。 每个x(t)函数(样本函数)就是实际发生的一个表达式确定的函数,对每个x(t)的处理,都是与之前确定函数的处理方法相同的,但是由于我们没…...

    2024/4/24 9:32:00
  2. gist.github无法访问解决方法及hosts文件格式变为.txt问题解决

    1、gist.github无法访问打开系统hosts文件,滑到最下方,回车另起一行添加以下两行内容: 192.30.253.118 gist.github.com 192.30.253.119 gist.github.com 保存后win系统打开cmd。尝试ping 192.30.253.118,如果能ping通,就可以正常访问了hosts文件路径:win系统在c:/window…...

    2024/4/24 9:32:00
  3. 网络营销--网站搜索引擎友好性分析

    1.实验目的 了解搜索引擎营销对网络营销信息传递的作用,通过对部分选定网站搜索引擎进行友好性分析,深入研究网站建设的专业性对搜索引擎营销的影响,对于发现的问题,提出相应的改进建议。 2.实验内容和步骤 (1)从备选网站中选定一个企业网站或自选确定一个网站; (2)浏…...

    2024/4/24 9:31:57
  4. MyBatis-Plus AR模式

    前言 这部分(AR、逻辑删除、MP通过version实现的乐观锁、自动填充)功能写项目的时候用来着,就是学的急就没有写笔记。 这个是自己学习时候记得笔记要是想详细了解可以去MP官网,上边有更详细的配置流程以及视频教学:MyBatis-Plus 什么是AR模式(Active Record) 通过实体类对…...

    2024/4/24 9:31:57
  5. 一文让你通关Java的多态机制

    首先,什么是多态? 官方一点:即同一方法可以根据发送对象的不同而采取多种不同的行为方式一个对象的实际类型是确定的,但可以指向不同对象的引用类型但是说白了就是: 按照继承的规则就是啃老可以,养老不行,子类能用父类的,但父类不能用子类的。但是多态给父类对象一个机…...

    2024/4/24 9:31:58
  6. JavaScript基础第06天

    11. 内置对象2. 查文档3. Math对象01 - Math对象最大值02 - 封装自己的数学对象03 - Math绝对值和三个取整方法1. 内置对象JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象 前面两种对象是JS 基础 内容,属于 ECMAScript; 第三个浏览器对象属于我们JS 独有的…...

    2024/4/24 9:31:54
  7. 【DVWA】--- 九、反射型XSS(XSS Reflected)

    XSS Reflected目录 一、low级别 二、Medium级别 三、High级别 四、Impossible级别 五、预防方法一、low级别 这里输入的内容会回显出来构造js代码:<script>alert(/hack/)</script>,会出现弹窗此时前端的html中已经有我们插入的代码了但是当我们再点击以下改模块时里…...

    2024/4/24 9:31:56
  8. 01 Windows elasticsearch7.x安装

    ES及Head下载安装请参考:https://www.cnblogs.com/peterYong/p/11024061.html参考配置如下(按照上述文档安装会有较多的异常):cluster.name: my-applicationnode.name: node-1path.data: E:\2020.06\elasticsearch-7.7.0\datapath.logs: E:\2020.06\elasticsearch-7.7.0\lo…...

    2024/4/24 9:31:52
  9. Android Studio 错误提示Lint found fatal errors while assembling a release target.

    Android Studio 错误提示:Lint found fatal errors while assembling a release target.To proceed, either fix the issues identified by lint, or modify your build script as follows: ... android {lintOptions {checkReleaseBuilds false// Or, if you prefer, you can…...

    2024/4/24 9:31:55
  10. WebGIS_Javascript_在mapbox展示客流OD线状图

    mapbox展示客流OD线状图的步骤如下: 1、首先引入mapbox 2、获取数据 3、将数据转为mapbox能识别的geojson格式 4、调用mapbox的addSource和addLayer方法将线状图层添加上mapbox 注意:线条数据分段请参考本条sql语句: 分为6段的话就截取六个分段的节点值,那样效果比较好看!…...

    2024/4/29 12:23:26
  11. 基于辗转相除法求最小公倍数

    先输入m和n,则先求出m和n的最大公约数,再令m和n的乘积除以最大公约数,所得即为最小公倍数。 #include <iostream> #include <algorithm> using namespace std; int gcd(int a,int b){if(b == 0) return a;else return gcd(b,a % b); } int main(){int m,n;cin &…...

    2024/4/16 10:49:56
  12. 北斗三号卫星精密星历

    北斗三号观测数据下载地址可以接收北斗三号新信号的MGEX观测站ftp://igs.ign.fr/pub/igs/data/campaign/mgex/daily/rinex3POTS SGOC SUTM ULAB URUM WIND WUH2北斗三号卫星精密星历武大WUM:ftp://igs.ign.fr/pub/igs/products/mgexGFZ GBM:ftp://ftp.gfz-potsdam.de/pub/GNS…...

    2024/4/19 11:04:09
  13. 通过翻转子数组使两个数组相等

    通过翻转子数组使两个数组相等 题目描述 给你两个长度相同的整数数组 target 和 arr 。 每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。 如果你能让 arr 变得与 target 相同,返回 True;否则,返回 False 。 示例 1: 输出:target = [1,2…...

    2024/4/27 1:12:33
  14. PB市净率,PE市盈率

    Table of Contents市净率PB计算方法估值适用范围市盈率PE概念市净率PB市净率(Price-to-Book Ratio,简称P/B PBR)指的是每股股价与每股净资产的比率。 市净率可用于股票投资分析,一般来说市净率较低的股票,投资价值较高,相反,则投资价值较低;但在判断投资价值时还要考虑…...

    2024/4/15 6:10:42
  15. 【DVWA】--- 十、存储型XSS(XSS Stored)

    XSS Stored目录 一、low级别 二、Medium级别 三、High级别 四、Impossible级别 五、预防方法一、low级别 不多说直接尝试写入弹窗成功由于他是存储型的只要我们点击该模块就会引发弹窗,可以看到我们的JS代码是写入了数据库的,只要不清除他就会一直存在.代码审计相关函数trim(st…...

    2024/4/18 10:01:09
  16. PyQT5速成极简精华总结

    这里写自定义目录标题写在前面pycharm配置环境以及简单运用可能的障碍 写在前面 由于我的项目采用CS方式,需要在客户端做一个交互界面。python语言通过调用pyQT5工具,是可以像QT一样设计界面的。 项目环境:win10 语言:python IDE:pycharm 思路/流程:为了达到这个效果,首…...

    2024/4/18 14:46:36
  17. NSIS之插件

    NSIS支持可以从脚本调用的插件。插件是用C++、Delphi或其他编程语言编写的DLL文件,因此为NSIS提供了更强大的代码库。例如:DLLName::FunctionName "parameter number 1" "parameter number 2" "parameter number 3"每个插件的函数在参数方面都…...

    2024/4/17 21:11:28
  18. PMIC-tps6594-q1-禁用WDG

    这个PMIC中带wdg模块,禁用wdg有两种方式:1)通过硬件禁用wdg根据手册中的描述“DISABLE_WDOG pin must be asserted to a logic-high level”,我用的是GPIO8,硬件将这个引脚上拉即可。2)通过软件的方式这个芯片默认上电后在Long Window,这个Long Window的默认时间是12分钟…...

    2024/4/16 10:51:07
  19. Laravel 在线考试系统——试题导入功能(2)

    试题导入功能(2)前言文件接收识别excel文件说明 前言 导入功能(1):Laravel 在线考试系统——试题导入功能(1) 文件接收 UploaderController 控制器 webuploader方法 //上传文件的处理 public function webuploader(Request $request){//判断是否有文件上传成功if($reque…...

    2024/4/24 9:31:52
  20. lecture 5:Policy Optimization 1

    ...

    2024/4/24 9:31:49

最新文章

  1. 数学符号的标准写法 (机器学习方向)

    摘要: 本贴讨论数学符号的标准写法, 列出 Latex 中使用的命令. 表 1. 矩阵相关符号 符号/操作意义Latex 命令 A \mathbf{A} A矩阵\mathbf{A} A i \mathbf{A}_{i} Ai​带下标的矩阵, 注意不是矩阵的元素 (entry)\mathbf{A}_{i} A i j \mathbf{A}_{ij} Aij​带双下标的矩阵矩阵\m…...

    2024/5/4 11:56:11
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 鹅厂实习offer

    #转眼已经银四了&#xff0c;你收到offer了吗# 本来都打算四月再投实习了&#xff0c;突然三月初被wxg捞了&#xff08;一年前找日常实习投的简历就更新了下&#xff09;&#xff0c;直接冲了&#xff0c;流程持续二十多天&#xff0c;结果是运气还不错&#xff0c;应该是部门比…...

    2024/5/1 13:19:09
  4. Claude-3全解析:图片问答,专业写作能力显著领先GPT-4

    人工智能技术的飞速发展正在深刻改变着我们的工作和生活方式。作为一名资深的技术爱好者&#xff0c;我最近有幸体验了备受瞩目的AI助手Claude-3。这款由Anthropic公司推出的新一代智能工具展现出了非凡的实力&#xff0c;尤其在图像识别和专业写作领域的表现更是让人眼前一亮&…...

    2024/5/1 10:16:01
  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/3 23:10:03
  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/5/4 2:59:34
  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