【从零开始重学Java】第13天 Java网络功能
传送门
从零开始重学Java 第0天
从零开始重学Java 第1天 Java概述
从零开始重学Java 第2天 标识符和数据类型
从零开始重学Java 第3天 表达式和流程控制语句
从零开始重学Java 第4天 数组、向量和字符串
从零开始重学Java 第5天 对象和类
从零开始重学Java 第6天 异常
从零开始重学Java 第7天 高级特性
从零开始重学Java 第8_9_10天 图形界面、Swing、Applet
从零开始重学Java 第11天 数据流
从零开始重学Java 第12天 线程
从零开始重学Java 第13天 线程
Java的网络功能
概述
IP:端口 就是Socket,中文翻译“套接字”(这个翻译实在太别扭了)
使用InetAddress
try {
String localHostAddress = InetAddress.getLocalHost().getHostAddress();
System.out.println("localHostAddress = " + localHostAddress);
InetAddress[] allByName = InetAddress.getAllByName("www.baidu.com");
System.out.println("baidu address");
for (InetAddress inetAddress : allByName) {
System.out.println(inetAddress.getHostAddress());
}
}catch (Exception e){
e.printStackTrace();
}
//localHostAddress =
//baidu address
//220.181.38.150
//220.181.38.149
统一资源定位器
URL的概念
URL的构造方法
与URL相关的异常
获取URL对象属性
读入URL数据
try {
URL url = new URL("https://www.baidu.com/");
try (InputStream inputStream = url.openStream()){
byte[] bytes = inputStream.readAllBytes();
System.out.println(new String(bytes));
}
}catch (Exception e){
e.printStackTrace();
}
Socket接口
Socket的基本概念
Socket通信的基本步骤
Socket通信的程序设计
public static void main(String[] args) {
new Thread(()->server(6666)).start();
try {
Thread.sleep(1000);
}catch (Exception e){
e.printStackTrace();
}
client(6666);
}
private static void server(int port){
try (ServerSocket socket = new ServerSocket(port)){
System.out.println("服务端已打开端口 " + port);
try (Socket acceptSocket = socket.accept();
OutputStream outputStream = acceptSocket.getOutputStream()){
System.out.println("acceptSocket.getInetAddress() " + acceptSocket.getInetAddress());
System.out.println("acceptSocket.getPort() " + acceptSocket.getPort());
outputStream.write("Hello".getBytes());
}
}catch (Exception e){
e.printStackTrace();
}
}
private static void client(int port){
try (Socket socket = new Socket("127.0.0.1",port)){
System.out.println("客户端已成功连接端口 " + port);
try (InputStream inputStream = socket.getInputStream()){
System.out.println("客户端收到了 " + new String(inputStream.readAllBytes()));
}
}catch (Exception e){
e.printStackTrace();
}
}
Java编程综合实例
第十三章习题
- Socket为什么要关闭
释放资源、通知对方连接结束、防止数据丢失(触发TCP协议中的连接终止过程)、释放端口、提高安全性