初识Tomcat
服务端:
自定义 C
Tomcat服务器 S:Java后端开发
客户端:
自定义 C
浏览器 B
1.7 UDP
数据报包(DatagramSocket)发送与接收
发送端:
package com.mine.lesson3;
import java.net.*;
//不需要连接服务器
public class UdpClientDemo01 {
public static void main(String[] args) throws Exception {
//1.新建一个Socket
DatagramSocket socket = new DatagramSocket();
//2.建个包 DatagramPacket
String msg="你好,服务器!";
InetAddress address = InetAddress.getByName("localhost");
int port=9090;
DatagramPacket packet = new DatagramPacket(msg.getBytes(), 0, msg.getBytes().length, address, port);
//3.发送包
socket.send(packet);
socket.close();
}
}
接收端:
package com.mine.lesson3;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UdpServerDemo01 {
public static void main(String[] args) throws Exception {
//开放端口
DatagramSocket socket = new DatagramSocket(9090);
//接收数据包
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length);
socket.receive(packet); //阻塞接收
System.out.println(packet.getAddress().getHostAddress());
System.out.println(new String(packet.getData(),0,packet.getLength())); //byte[]->String
socket.close();
}
}
UDP聊天实现
循环发送消息
发送方:
DatagramSocket socket = new DatagramSocket();
while (true) {
//准备数据:从控制台接收数据
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String data = reader.readLine();
byte[] datas = data.getBytes();
//打包
DatagramPacket packet = new DatagramPacket(datas, 0, datas.length, new InetSocketAddress("127.0.0.1", 6666));
socket.send(packet);
if(data.equals("bye")) break; //bye退出循环接收
}
socket.close();
接收者:
DatagramSocket socket = new DatagramSocket(6666);
while (true) {
//准备接收数据
byte[] bytes = new byte[1024];
DatagramPacket packet = new DatagramPacket(bytes, 0, bytes.length);
socket.receive(packet); //阻塞式接收包裹
//断开连接:如果接收到 bye就退出循环
byte[] data = packet.getData();
String receiveData = new String(data, 0, data.length);
System.out.println(receiveData);
if (receiveData.equals("bye")) {
break;
}
}
socket.close();
多线程在线咨询
1.8 URL
https://www.baidu.com
统一资源定位符:定位资源的,定位互联网上的某一个资源
DNS域名解析 www.baidu.com xxx.x.xx.xx
协议://ip地址:端口/项目名/资源
URL url = new URL("http://localhost:8080/helloworld/index.jsp?username=root");
System.out.println(url.getProtocol()); //协议名
System.out.println(url.getHost()); //主机IP
System.out.println(url.getPort()); //端口号
System.out.println(url.getPath()); //文件
System.out.println(url.getFile()); //文件全路径
System.out.println(url.getQuery()); //参数
下载文件
public class URLDown {
public static void main(String[] args) throws IOException {
//1.下载地址(可以写自己想下的资源链接)
URL url = new URL("https://m701.music.126.net/20210505164644/b272db6641b6e975c78e51e182d1211d/jdyyaac/obj/w5rDlsOJwrLDjj7CmsOj/8698723658/63d4/2446/ae0d/788e204c24f3497eb896a9112fa6baac.m4a");
//2.连接到这个资源 HTTP
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
FileOutputStream fos = new FileOutputStream("mine.m4a");
byte[] bytes = new byte[1024];
int len;
while ((len=inputStream.read(bytes))!=-1){
fos.write(bytes,0,len); //写出这个数据到文件
}
fos.close();
inputStream.close();
urlConnection.disconnect(); //断开连接
}
}