Java---网络编程

文章目录

    • 1. 网络编程概述
    • 2. InetAddress
    • 3. 端口和协议
    • 4. Java网络API
    • 5. URL
    • 6. URLConnection类


1. 网络编程概述

 1. 计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

Java---网络编程_第1张图片

 2. 网络编程:在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换。

 3. 网络编程三要素:IP地址、端口和协议。

Java---网络编程_第2张图片

 4. 协议:IPv4协议和IPv6协议。常用命令:(1) ipconfig:查看本机IP地址。 (2) ping IP地址:检查网络是否连通。

Java---网络编程_第3张图片

2. InetAddress

 为了方便我们对IP地址的获取和操作,Java提供了一个类InetAddress供我们使用。此类表示Internet协议地址。

方法名 说明
static InetAddress getByName(String host) 确认主机名称的IP地址,主机名称可以是机器名称,也可以是IP地址
String getHostName() 返回此IP地址的主机名
String getHostAddress() 返回文本显示中的IP地址字符串
public class InetDemo {
    public static void main(String[] args) throws UnknownHostException {
        InetAddress address = InetAddress.getByName("111");
        String name= address.getHostName();
        String ip= address.getHostAddress();
        System.out.println("主机名:"+name);
        System.out.println("IP地址:"+ip);
    }
}

3. 端口和协议

 1. 端口:设备上应用程序的唯一标识,取值范围是0-65535。

 2. 在计算机网络中,连接和通信的规则被称为网络通信协议。

Java---网络编程_第4张图片
Java---网络编程_第5张图片

4. Java网络API

Java---网络编程_第6张图片

import java.io.*;
import java.net.*;

public class Server  {
    public static void main(String[] args) throws IOException {
        //声明并初始化一个名为serverSocket的ServerSocket对象,让它监听8080端口。
        ServerSocket serverSocket = new ServerSocket(8080);
        System.out.println("Server is listening on port 8080");

        while (true) {
            Socket socket = serverSocket.accept();
            new ServerThread(socket).start();
        }
    }
}
class ServerThread extends Thread {
    private Socket socket;

    public ServerThread(Socket socket) {
        this.socket = socket;
    }
    //这是线程的执行方法。当线程启动时,它会自动调用这个方法。
    public void run() {
        try {
            InputStream input = socket.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(input));
            OutputStream output = socket.getOutputStream();
            PrintWriter writer = new PrintWriter(output, true);
            String text;
            while ((text = reader.readLine()) != null) {
                System.out.println("Server received: " + text);
                writer.println("Echo: " + text);
            }
            socket.close();
        } catch (IOException ex) {
            System.out.println("Server exception: " + ex.getMessage());
            ex.printStackTrace();
        }
    }
}
import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("localhost", 8080);
        System.out.println("Connected to the server");

        InputStream input = socket.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));

        OutputStream output = socket.getOutputStream();
        PrintWriter writer = new PrintWriter(output, true);

        writer.println("Hello Server");
        String response = reader.readLine();
        System.out.println(response);

        socket.close();
    }
}

Java---网络编程_第7张图片

5. URL

 1. URL(Uniform Resource Locator,统一资源定位器)表示互联网上某一资源的地址。

 2. URL可以由协议名、主机、端口和资源四个部分组成,其语法为:protocol://host:port/resourceName

  • protocol是协议名。
  • host是主机名。
  • port是端口。
  • resourceName是资源名。

 3. URL类常用方法如下图所示:

Java---网络编程_第8张图片

import java.io.*;
import java.net.URL;

public class Demo {
    public static void main(String[] args) throws IOException {
        URL mybook=new URL("https://yiyan.baidu.com/");
        System.out.println("协议 protocol= "+mybook.getProtocol());
        System.out.println("主机 host= "+mybook.getHost());
        System.out.println("端口 port= "+mybook.getPort());
        System.out.println("文件 filename= "+mybook.getFile());
        System.out.println("路径 path= "+mybook.getPath());
    }
}

Java---网络编程_第9张图片

6. URLConnection类

 1. URLConnection代表与URL指定的数据源的动态连接,允许使用POST或PUT和其他HTTP请求方法将数据送回服务器。

 2. URLConnection常用方法:

Java---网络编程_第10张图片

你可能感兴趣的:(Java学习,java,网络)