当前位置: 首页 > news >正文

宜春网站建设公司哪家好/万能软文模板

宜春网站建设公司哪家好,万能软文模板,ui中国官网,查找全国免费网站建设一、网络程序设计基础 1.局域网与因特网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机&#xff08;服务器<-->网络<-->客户机&#xff09;。 服务器是指提供信息的计算机或程序&#xff0c;客户机是指请求信息的计算机或程序。网络用…

一、网络程序设计基础

1.局域网与因特网

为了实现两台计算机的通信,必须用一个网络线路连接两台计算机(服务器<-->网络<-->客户机)。

服务器是指提供信息的计算机或程序,客户机是指请求信息的计算机或程序。网络用于连接服务器与客户机,实现两者间的相互通信。但有时在某个网络中很难将服务器与客户机区分开。我们通常所说的局域区(Local Area Network,LAN)就是一群通过一定形式连接起来的计算机。它可以由两台计算机组成,也可以由同一区域内的上午台计算机组成。将LAN延伸到更大的范围,这样的网络称为广域网(Wide Area Network,WAN)。我们熟悉的因特网(Internet)就是由无数的LAN和WAN组成的。

2.网络协议

网络协议规定了计算机之间连接的物理、机械(网线与网卡的连接规定)、气(有效的电平范围)等特征,计算机之间的相互寻址规则,数据发送冲突解决方式,长数据如何分段传送与接收等内容。就像不同的国家有不同法律一样,目前网络协议也有多种。
常用网络协议:

(1) IP协议:

IP是Intemet Protocol的简称,是一种网络协议。Internet网络采用的协议是TCP/IP协议,其全称是Tinsmission ctiol Protocol Internet Protocol.Interet 依靠TCP/IP协议,在全球范围内实现了不同硬件结构、不同操作系统、不同网络系统间的互联。在Interet网络上存在着数以亿计的主机,每台主机都用网络为其分配的Internet地址代表自己,这个地址就是IP地址。到目前为止,IP地址用4个字节(byte),也就是32位的二进制数来表示,称为 IPv4。为了便于使用,通常取每个字节的+进制数,(不包含符号位,所以 最小为0,最大佳为255(是))并且每个字节之间用圆隔开表示IP地址,如192.168.1.1。现在人们正在试验使用16个字节来表示IP地址,这就是IPv6,但IPV6还没有投入使用。
TCP/IP 模式是一种层次结构,共分为4层,分别为应用层传输层互联网层网络层。各层实现特定的功能,提供特定的服务和访问接口,并具有相对独立性。

(2)TCP与UDP协议:

在TCP/IP协议栈中,有两个高级协议是网络应用程序编写者应该了解的,即传输控制协议-TCP(Transmission ControlProtocol)与用户数据报协议-UDP(User Datagram
Protocol)。

TCP协议是一种以固按连线为基础的协议,它提供两台计算机间可靠的数据传送。TCP可以保证从一端数据送至连接的另一端时,数据能够确实送达,而且抵达的数据的排列顺序和送出时的顺序相同。因此,TCP协议适合可靠性要求比较高的场合。就像拨打电话,必须先拨号给对方,等两端确定连接后,相互才能听到对方说话,也知道对我回应的是什么。

HTTP(超文本传输协议)、FTP(文本传输协议)和Telnet(Telnet协议)等都需要使用可靠的通信频道。例如,HTTP从某个URL(标准资源地址)读取数据时,如果收到的数据顺序与发送时不相同,可能就会出现一个混乱的HTML文件或是一些无效的信息。

UDP协议无连接通信协议,不保证数据的可靠传输,但能够向若干个目标发送数据,或抗收来自若干个源的数据。UDP以独立发送数据包的方式进行。这种方式就像邮递员送信给收信人,可以寄出多个信给同一个人,且每一封信都是相对独立的,各封信送达的顺序并不重要,收信人接收信件的顺序也不能保证与寄出售件的顺序相同

UDP协议适合于一些对数据准确性要求不高,但对传输速度和时效性要求非常高的网站,如网络聊天室、在线影片等。这是由于TCP协议在认证上存在额外耗费,可能使传输速度减慢,而VDP协议即使有一小部分数据包遗失或传送顺序有所不同,也不会严重危害该项通信。

一些防火墙和路由器会设置成不允许UDP数据包传输,因此若遇到UDP连接方面的问题,应先确定所在网络是否允许UDP协议。

3.端口和套接字

一般而言,一台计算机只有单一的连到网络的物理连接(Physica Connection)所有的数据都通过此连接对内、对外送达特定的计算机,这就是端口。 网络程序设计中的端口(port)并非真实的物理存在,而是一个假想的连场装置。端口被规定为一个0~65535之间的整数(2^(16)-1)。HTTP服务一般使用80端口FTP服务使用21端口。假如一台计算机提供了HTTP、FTP等多种服务,那么客户机会通过不同的端口来确定连接到服务器的哪项服务上。如图1。

通常,0~1023(2^(10)-1)之间的端口数用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用 1024以上的端口数,以避免端口号与另一个应用或系统服务所用端口冲突。

网络程序中的套接字(Socket)用于将应用程序与端口连接起来。套接字是一个假想的连接装置,就像插座一样可连接电器与电线,如图2。

Java将套接字抽象化为类,程序设计者只需创建Socket类对象,即可使用套接字。

二、TCP程序设计基础 

TCP网络程序设计是指利用Socket类编写通信程序。利用TCP协议进行通信的两个应用程序是有主次之分的,一个称为服务器程序,另一个称为客户机程序两者的功能和编写方法大不一样

服务器端与客户端的交互过程如图。

 ①服务器程序创建一个ServerSocket(服务器套接字),调用accept()方法等待客户机来连核。  客户端程序创建一个 Socket,请求与服务器建立连接。   服务器接收客户的连接请求,同时创建一个新的Socket与客户机建立连接。随后服务器继续等待新的请求。

1.InetAddress类

java.net包中的InetAddress类是与IP地址相关的类,利用该类可以获取IP地址 、主机地址等信息。

常用方法:

静态 getByName(Sting host) :获取与Host相对应的InetAddress对象;返回值为InetAddress。(例:主机名 DESKTOP-2TJS791 => InetAddress ia= DESKTOP-2TJS791/127.0.0.1; 地址 12.34.56.78 => InetAddress ia=/12.34.56.78 ;8998 => InetAddress ia=/0.0.35.38)

静态 getLocal Host() :返回本地主机的 InetAddress对象;返回值为InetAddress

非静态 get HostAddress() :获取InetAddress对象所包含的IP地址;返回值为String

非静态 getHostName() :获取此 IP地址的主机名;返回值为String

例:

public class Test {public static void main(String[] args) {try {InetAddress ip = InetAddress.getLocalHost();// ip=DESKTOP-2TJS791/192.168.5.13String hostName=ip.getHostName();//hostName=DESKTOP-2TJS791String hostAddress=ip.getHostAddress();//hostAddress=192.168.5.13InetAddress inetAddress=InetAddress.getByName(hostName);//inetAddress=DESKTOP-2TJS791/192.168.5.13System.out.println("InetAddress对象(本地主机):"+ip);System.out.println("主机名:"+hostName);System.out.println("主机地址:"+hostAddress);System.out.println("InetAddress对象(依靠主机名生成):"+inetAddress);/** 输出结果为:* * InetAddress对象(本地主机):DESKTOP-2TJS791/192.168.5.13* 主机名:DESKTOP-2TJS791* 主机地址:192.168.5.13* InetAddress对象(依靠主机名生成):DESKTOP-2TJS791/192.168.5.13*/} catch (UnknownHostException e) {//InetAddress类的方法会抛出UnknownHostException异常,所以必须进行异常处理。这个异常在主机不存在或网络连接错误时发生。e.printStackTrace();}}}

2.ServerSocket类

java.net包中的 Senersocket类用于表示 服务器套接字,其主要功能是等待来自网络上的“请求”,它可通过指定的端口来等待连接的套接字。服务器套接字一次可以与一个套接字连按。如果多台客户机同时提出连接请求,服务器套接字会将请求连接的客户机存入列队中,然后从中取出一个套接字,与服务器新建的套接字连接起来。若请求数大于最大容纳数,则多出的连接请求被拒绝。队列的默认大小是50

(1)ServerSocket构造方法(通常会抛出IOException异常):

Serversocket()  创建非绑定服务器套接字
Server socket (int port)   创建绑定到特定端口的服务器套接字,(等待连接的队列长度为默认的50)
Server Socket(int port ,int backlog)  利用指定的backlog(等待连接的队列最大长度,不写默认50)创建服务器套接字,并将其绑到指定的本地端口上
ServerSocket (int port,int backlog, InetAddress bindAddress)
使用指定的端口、侦听backlog和要绑定到的本地IP地址创建服务器。
这种情况适用于计算机上有多块网卡和多个IP地址的情况,用户可以明确规定ServerSocket在哪块网卡或哪个IP地址上等待客户机的连接请求。

(2)ServerSocket类常用方法:

accept()  等待客户机的连书。若进接,则创建一个套接字。返回值为 Socket 。
isBound()  判断 ServerSocket的绑定状态。返回值为 Boolean 。
getInetAddress()  返回此服务器套接字的本地地址。返回值为 InetAddress 。
isClosed()  返回服务器套按字的关闭状态。返回值为 Boolean 。
closel()  关闭服务器套按字。返回值为 void 。
bind (SocketAddress endpoint)  将ServerSocket 绑定到特定地址上(IP地址和端口号)。返回值为 void 。

getLocalPort() 返回此套接字在其上侦听的端口。返回值为 int 。

调用Serverfocket类的accept()方法,会返回一个和客户端 Socket对象相连接的Socket对象。服务器端的Socket对象使用 getOutputStream()方法获得的输出流,将指向客户端Socket 对象使用 getInputStream()方法获得的输入流;同样,服务器端的Socket 对象 使用 getInputscream()方法获得输入流,将指向客户端的Socket对象使用 getOutputstream()方法获得的那个输出流。也就是说,当服务器向输出流写入信息时,客户端通过相应的输入流就能读取,反之亦然。 

accept()方法会阻塞线程的继续执行,直到接收到客户的呼叫。语句如果没有客户请求accept()方法没有发生阻塞,肯定是程序出现了问题。通常是使用了一个被其它程序占用的端口号,ServerSocket绑定没有成功。

3.TCP网络程序

明白了TCP程序工作的过程,就可以编写TCP服务器程序了。在网络编程中如果只要求客户机向服务器发送消息,不要求服务器向客户机发送消息,称为单向通信。客户机套接字和服务器套接字连接成功后,客户机通过输出流发送数据,服务器则通过输入流接收数据。

(1)例.服务器:

public class Test {public static void main(String[] args) {//启动服务器new MyTCPServer().startServer();	}
}//服务器
class MyTCPServer{private BufferedReader reader;private ServerSocket server;private Socket socket;void startServer() {try {//创建服务器套接字server=new ServerSocket(8998);System.out.println("服务器套接字已经创建成功");while(true) {System.out.println("等待客户机的连接");//等待客户机连接,在有客户机连接前会一直阻塞socket=server.accept();//连接成功后根据套接字获取输入流reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));getClientMessage();}} catch (IOException e) {e.printStackTrace();}}private void getClientMessage() {try {while(true) {//获取输入流内容String str=reader.readLine();if(str!=null) {System.out.println("客户机:"+str);}else if(str==null) {//输入流中断-输入结束break;}}}catch(Exception e) {e.printStackTrace();}try {if(reader!=null) {reader.close();reader=null;}if(socket!=null) {socket.close();socket=null;}}catch(Exception e) {e.printStackTrace();}}
}

(2)例.客户机:

public class Test {public static void main(String args[]) {//启动客户机new MyTCPClient().startClient();}
}//客户机
class MyTCPClient{private PrintWriter writer; //输入流的一种,使用println()输出void startClient() {System.out.println("尝试连接");try {//创建用于连接目标服务器的套接字Socket socket=new Socket("127.0.0.1",8998);//根据套接字生成输入流(会产生阻塞;未连接到服务器会一直阻塞)writer=new PrintWriter(socket.getOutputStream(),true);System.out.println("连接成功");putMessage();} catch (IOException e) {e.printStackTrace();}}private void putMessage() {//获取来自控制台的输入流BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));while(true) {try {//读取输入流内容String str = reader.readLine();if(str!=null) {//像输出流中输出writer.println(str);}else {//输入流断开-输入结束break;}} catch (IOException e) {e.printStackTrace();}}}}

三、UDP程序设计基础

用户数据报协议(UDP)是网络信息传输的另一种形式。基于UDP的通信和基于TCP的通信不同,基于UDP的信息传递更快,但不提供可靠的保证。使用UDP传递数据时,用户无法知道数据能否正确地到达主机,也不能确定到达目的地的顺序是否和发送的顺序相同。虽然VDP是一种不可靠的协议,但如果需要较快地传输信息,并能容忍小的含案,可以考虑使用UDP。

基于UDP通信的基本模式如下:
将数据打包(称为数据包),然后将数据包发往目的地。
按收别人发来的数据包,然后查看数据包

发送数据包步骤如下:
(1) 使用 DatagramSocket()创建一个数据包套接字。
(2) 使用 DatagramPacket(byte[] buf, int length,EnecAuldress ddres, int port)创建要发送的数据包。
(3) 使用 DatagramPacket类的 send()方法发送数据包。

接收数据包步骤如下:
(1)使用 Datagram Socket(int port)创建数据包套按字,绑定到指定的端口。
(2)使用 Dacagramlacket(byter] buf,int length)创建字节数组来接收数据包。
(3)使用 DatagramPacket类的 receive()方法 接收UDP包。

1.DatagramPacket类

java.net包的 DatagramPacket类用来表示数据包。DatagramPacket类的构造函数有:
DatagramPacket(byte[] buf , int length)
DatagramPacket(byte[] buf, int length,InetAddress address,int port)

第一种构造函数在创建DatagromPadket对象时,指定了数据包的关第二种构造函数不仅指定了数据包的内存空间和大小,还指定了数据包的目标地址和端口。在发送数据时必须指定接收方的 Socket的InetAddress地址和端口号,因此使用第二种构造函数可创建发送数据的DatagramPacket对象。

2.DatagramSocket类

java.net包中的DatagramSocket类用于表示发送和接收数据包的套接字。该类构造函数有:DatagramSocket()
DatagramSocket( int port)
DatagramSocket (int port,InetAddress addr)

第一种构造函数创建DatagramSocket对象,构造数据报套接字,并将其绑定在本地主机任何可用的端口上。第二种构造函数创建DatagramSocket对象,创建数据报套接字,并将其绑定在本地主机的指定端口上。第三种构造函数创建DatagramSocket对象,创建数据报套接字,并将其绑定到指定的本地地址上。第三种构造函数适用于有多块网卡和多个IP地址的情况。
在接收程序时必须指定一个端口等,不允许系统随机产生,此时可以使用第二种构造函数。比如有个朋友要你给他写信,那他的地址就必须确定。在发送程序时通常使用第一种构造函数,不指定端口号,而是系统为我们分配一个端口号,就像寄信不需要到指定的邮局一样。

3.UDP网络程序

根据前面所讲的网络编程的基本知识,以及UDP网络编程的特点,下面创建一个广播数据报程序。广播数据报是一项较新的技术,其原理类似于电台广播。广播电台需要在指定的波段和频率上广播信息,收听者也要将收音机调到指定的波和频半上广播信息,收听者也要将收视调到指定的波段、率,才可以收叫广播内容。

例.主机不断地重复播出节目预报,到加入到同一组内的主机随时可接收到广播信息。接收者将正在接收的信息放在一个文本城中,并将接收的信息放在另一个文本城中,

(1)广播主机程序不断向外播出信息:

public class Test {public static void main(String[] args) {//启动UDP发送端new MyUDP_Send().startUDPSend();}
}class MyUDP_Send{private String sendMessage="发送的信息";private int port=9898;  //发送端口号(发送方可无固定端口号)private InetAddress group=null;  //广播组InetAddress(广播地址应默认为224.255.10.0)private MulticastSocket multicastSocket=null; //广播套接字,用于UDP广播(群发)的发送与接收//如果不使用MulticstSocket,而使用DatagramSocket,除不能加入广播组以外无不同void startUDPSend() {try {//广播组地址、广播地址group=InetAddress.getByName("224.255.10.0");//或使用 new MulticastSocket(); 即不使用指定端口号,由系统随机分配。//或使用 new DatagramSocket();  即不进行广播及加入广播组multicastSocket=new MulticastSocket(port);//设置广播组套接字发出的数据报包的存活时间(毫秒)multicastSocket.setTimeToLive(1);//加入广播组//将MulticastSocket加入同一个IntentAddress组成的group;任何MulticastSocket向这个group发送消息,其他group成员都可以收到消息multicastSocket.joinGroup(group);sendDatagramPacket();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private void sendDatagramPacket() {Thread thread=new Thread() {public void run() {while(true) {DatagramPacket packet=null;//创建数据的字节数组byte data[]=sendMessage.getBytes();//创建数据报包-参数为:用于发送的字节数组;数组长度;目标地址(或广播地址);目标端口号//DatagramPacket当目标地址为广播组InetAddress时,广播组中所有的MulticastSocket(目标端口)都会收到信息包packet=new DatagramPacket(data,data.length,inetAddress,port);try {//发送数据报包multicastSocket.send(packet);} catch (IOException e) {e.printStackTrace();}try {//每2秒重发一次Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}}}};thread.start();}
}

MulticastSocket(广播套接字),用于UDP广播(群发);如果不使用MulticstSocket,而使用DatagramSocket,除不能加入广播组以外无不同。

将MulticastSocket加入同一个IntentAddress组成的group;任何MulticastSocket向这个group发送消息,其他group成员都可以收到消息。

创建数据报包的参数为:用于发送的字节数组;数组长度;目标地址(或广播地址);目标端口号。 

DatagramPacket当目标地址为广播组InetAddress时,广播组中所有的MulticastSocket(目标端口)都会收到信息包。

(2)接收主机发出的数据包:

public class Test {public static void main(String[] args) {//启动UDP接收端new MyUDP_Receive().startUDPReceive();}
}class MyUDP_Receive{private MulticastSocket multicastSocket;  //广播套接字,用于UDP广播(群发)的发送与接收//如果不使用MulticstSocket,而使用DatagramSocket,除不能加入广播组以外无不同private InetAddress group; //广播组InetAddress(广播地址应默认为224.255.10.0)private int port=9898;//接收端口号(接收方必须有固定端口号)void startUDPReceive() {try {//广播组地址、广播地址group=InetAddress.getByName("224.255.10.0");//创建接收用广播套接字-接收方必须有端口号multicastSocket=new MulticastSocket(port);//加入广播组multicastSocket.joinGroup(group);receiveDatagramPacket();} catch (IOException e) {e.printStackTrace();}}private void receiveDatagramPacket() {while(true) {//存储用字节数组byte buff[]=new byte[1024];//创建接受用数据包-参数为:用于接收的字节数组,字节数组长度DatagramPacket packet=new DatagramPacket(buff,buff.length);//广播套接字接收数据包try {multicastSocket.receive(packet);} catch (IOException e) {e.printStackTrace();}//解析获取到的数据byte data[]=packet.getData();System.out.println("接收:"+new String(data));}}
}

接收用广播套接字-接收方必须有端口号。

创建接受用数据包的参数为:用于接收的字节数组,字节数组长度。

packet.getData();获取数据包的信息,返回值为字节数组。

相关文章:

【详细】Java网络通信 TCP、UDP、InetAddress

一、网络程序设计基础 1.局域网与因特网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机&#xff08;服务器<-->网络<-->客户机&#xff09;。 服务器是指提供信息的计算机或程序&#xff0c;客户机是指请求信息的计算机或程序。网络用…...

Linux(Centos7)操作记录

1、nginx -t #Nginx配置文件检查 上述截图代表检查没问题 上述截图检查配置文件配置错误&#xff0c;并提示错误文件位置 2、systemctl restart nginx #重启Nginx 重启Nginx失败 3、systemctl status nginx.service #查看Nginx服务状态 80端口被占导致服务启动失败 4、n…...

Vue全局事件总线实现任意组件间通信

一、安装全局事件总线 全局事件总线就像是一个工具&#xff0c;专门用于挂载自定义事件和。 想要所有的组件都能使用这个全局事件总线&#xff0c;就只有在Vue的原型身上添加一个能够绑定自定义事件的属性。 所以我们在创建Vue实例对象的时候就可以添加如下代码&#xff1a;…...

linux-tools-$(uname -r) linux-headers-$(uname -r)工具安装:

linux-tools-$(uname -r) linux-headers-$(uname -r)工具安装: ebpfebpf-virtual-machine:~$ sudo apt-get install linux-tools-$(uname -r) [sudo] ebpf 的密码&#xff1a; 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 linux…...

hive sql,年月日 时分秒格式的数据,以15分钟为时间段,找出每一条数据所在时间段的上下界限时间值(15分钟分区)

获取当前的年月日 时分秒 select date_format(current_timestamp(), yyyy-MM-dd HH:mm:ss)date_format(时间字段, ‘yyyy-MM-dd HH:mm:ss’) 将时间字段转为 2023-10-18 18:14:16 这种格式 在指定时间上增加15分钟 select from_unixtime(unix_timestamp(current_timestamp(…...

C#学习系列之继承

C#学习系列之继承 啰嗦继承使用特殊基类隐藏方法实际使用总结 啰嗦 基础学习。 继承 一个类派生于另一个基类型&#xff0c;它拥有该基础类型的所有成员字段和函数。A派生于B&#xff0c;继承A的所有东西&#xff0c;同时可以增加自己的东西。 使用 public class parent {p…...

PyTorch入门学习(六):神经网络的基本骨架使用

目录 一、引言 二、创建神经网络骨架 三、执行前向传播 一、引言 神经网络是深度学习的基础。在PyTorch中&#xff0c;可以使用nn.Module类创建自定义神经网络模型。本文将演示如何创建一个简单的神经网络骨架并执行前向传播操作。 二、创建神经网络骨架 首先&#xff0c…...

“体检报告健康解读技术传承人”授牌仪式圆满结束

2023年10月&#xff0c;全国卫生健康技术推广传承项目办公室将体检报告健康解读技术传承人证书授予中山大学麻醉学硕士、副主任医师、医说友道创始人许才燕医生。 10月13日&#xff0c;许才燕医生团队在广东佛山举行“解读体检报告 重构健康生态”体检报告健康解读技术传承人授…...

查询计算机GUID码

如何查询计算机GUID码&#xff08;全局唯一标识符&#xff09; 1.快键键WINR进入注册表 2.找到\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography路径 3.双击MachineGuid项即可显示计算机GUID码...

MediaPlayer+TextureView实现视频播放功能

前面写一些基础知识的学习&#xff0c;这篇写个小demo&#xff0c;实现视频循环播放功能。 1、xml代码&#xff1a; <TextureViewandroid:id"id/textureView"android:layout_width"600px"android:layout_height"400px"android:focusable&quo…...

webpack 优化

打包优化 webpack 优化1、依赖转化&#xff0c;兼容低版本浏览器2、生产环境关闭sourceMap3、打包输出目录名称修改和静态资源的存放4、修改图标5、修改webpack配置5-1、写在此处的配置可以覆盖掉脚手架本来就预设上有的配置5-2、写在此处的都是预设没有配置的&#xff0c;脚手…...

保障 Golang 项目安全的最佳实践

对任何项目来说&#xff0c;安全都是一个永恒的话题&#xff0c;本文详细讲解一下保障 Golang 项目的安全性需要遵循一些最佳实践。 对源代码和构建出的二进制文件做全面的安全扫描 定期对源代码和二进制文件进行全面的安全扫描&#xff0c;查找漏洞&#xff0c;以便及早识别…...

PG物理备份与恢复之pg_basebackup

PG物理备份与恢复之pg_basebackup 开启WAL日志归档pg_basebackup备份工具全库恢复&#xff1a;recovery.conf &#x1f418; 数据库版本&#xff1a;PostgreSQL 10.4 开启WAL日志归档 通过数据库的全量备份和WAL日志&#xff0c;可以将数据库恢复到任意时间点。每个WAL日志文件…...

npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

1 bug描述 使用vscode执行npm run dev指令时出现 “npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次 “ 的错误提示&#xff0c;原因是系统里没有安装n…...

Android 13.0 通过驱动实现禁用usb鼠标和usb键盘功能

1.概述 在13.0的系统产品定制化开发中,在进行定制中有关于usb键盘和usb鼠标的需求中,产品要求禁止usb口挂载usb鼠标和usb键盘,所以需要要求在usb挂载类型的时候 判断如果是usb鼠标和usb键盘就不让挂载,这就需要从驱动方面入手来解决这个问题,接下来看下驱动的某些挂载usb…...

Ubuntu 22.04配置/etc/rc.local开机自启文件

1.查看系统版本 rootbogon-virtual-machine:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04 LTS Release: 22.04 Codename: jammy rootbogon-virtual-machine:~ 2. 解决 /etc/rc.local 开机启动问题 看rc-loc…...

python爬虫之正则表达式解析实战

文章目录 1. 图片爬取流程分析2. 实现代码—爬取家常菜图片 1. 图片爬取流程分析 先获取网址&#xff0c;URL&#xff1a;https://www.xiachufang.com/category/40076/ 定位想要爬取的内容使用正则表达式爬取导入模块指定URLUA伪装&#xff08;模拟浏览器&#xff09;发起请求…...

什么是虚拟dom?

虚拟DOM是利用js描述元素与元素的关系&#xff0c;用js对象来表示真实的dom树结构&#xff0c;创建一个虚拟的dom对象。 虚拟DOM的原理是根据真实DOM生成一个js对象&#xff0c;里面有元素、属性和文本&#xff0c;这些与真实DOM中的元素、属性、文本一一对应。虚拟DOM可以更好…...

大数据学习(18)-任务并行度优化

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…...

C++学习笔记之四(标准库、标准模板库、vector类)

C 1、C标准库2、C标准模板库2.1、vector2.1.1、vector与array2.1.2、vector与函数对象2.1.3、vector与迭代器2.1.4、vector与算法 1、C标准库 C C C标准库指的是标准程序库( S t a n d a r d Standard Standard L i b a r a y Libaray Libaray)&#xff0c;它定义了十个大类…...

IDEA部署SSM项目mysql数据库MAVEN项目部署教程

如果 SSM 项目是基于 Maven 构建的&#xff0c;则需要配置 maven 环境&#xff0c;否则跳过这一步 步骤一&#xff1a;配置 Maven 第一步&#xff1a;用 IDEA 打开项目&#xff0c;准备配置 maven 环境 &#xff0c;当然如果本地没有提前配置好 maven&#xff0c;就用 IDEA 默…...

uniapp 将流转化为视频并播放 微信小程序

该问题最关键的一步是将后端传回来的流&#xff0c;转化成视频&#xff0c;并播放。 1、从服务器请求数据流到前端 2、新建一个临时文件&#xff0c;将数据流写入这个文件里面&#xff0c;并自定义路径命名。 const fs wx.getFileSystemManager(); //获取全局唯一的文件管理…...

【软考】系统集成项目管理工程师(十)项目质量管理【3分】

一、质量概念 1、定义 国际&#xff1a;反应实体满足主体明确和隐含需求的能力的特性总和 国内&#xff1a;一组固有特性满足要求的程度 2、质量与等级 质量&#xff1a;作为实现的性能或成果&#xff0c;是一系列内在特性满足要求的程度ISO9000 等级&#xff1a;作为设计意…...

七层负载均衡 HAproxy

一、HAproxy 1、负载均衡类型&#xff1a; (1) 无负载均衡&#xff1a; 没有负载均衡&#xff0c;用户直接连接到 Web 服务器。当许多用户同时访问服务器时&#xff0c;可能无法连接。 (2) 四层负载均衡&#xff1a; 用户访问负载均衡器&#xff0c;负载均衡器将用户的请求…...

SQL SELECT TOP, LIMIT, ROWNUM

SQL SELECT TOP 子句 SELECT TOP 子句用于指定要返回的记录数量。 SELECT TOP子句在包含数千条记录的大型表上很有用。返回大量记录会影响性能。 注&#xff1a;并不是所有的数据库系统都支持SELECT TOP子句。MySQL支持LIMIT子句来选择有限数量的记录&#xff0c;而Oracle使用…...

vue3-admin-element框架登录如何修改?

1、找到vite.config.js文件 配置反向代理 2、找到src文件下的user.js文件 3、找到views文件下的login文件 打开找到comp文件夹找到LoginFrom.vue页面进去 把这个改成自己的账户数据&#xff08;密码不一致自行更改&#xff09; 4、找到store文件下的modules下的user.js 5、找到…...

基于mysql的请假系统,java/springboot/jsp/javaweb/tomcat

系统分为 学生/辅导员/超级管理员 登录注册、修改头像、个人资料。 学生登录可以提交请假申请。 辅导员登录可以管理学生信息、管理班级信息、管理课程信息。 超级管理员登陆可以管理用户信息、管理学生信息、管理辅导员信息、管理班级信息、管理二级学院信息、管理课程信息、…...

【Python机器学习】零基础掌握partial_dependence检验、检查

在医疗健康的领域,有一个问题一直困扰着专家——如何从多个健康指标中找出影响患者健康最关键的因素?在这样的场景下,做出准确的预测非常关键,因为它直接关联到患者的生命安全。 解决这一问题的一个有效方法是利用机器学习算法,具体来说就是通过偏依赖图(Partial Depend…...

前端Vue页面中如何展示本地图片

<el-table :data"tableData" stripe style"width: 100%"><el-table-column prop"imgUrl" label"图片"><template v-slot"scope"><img :src "http://localhost:8888/image/ scope.row.imgUrl&qu…...

基于PHP的图像分享社交平台

有需要请加文章底部Q哦 可远程调试 基于PHP的图像分享社交平台 一 介绍 此图像分享社交平台基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。平台角色分为用户和管理员。用户可注册登录&#xff0c;发布图像&#xff0c;修改个人信息&#xff0c;评论图像…...