Java作为一种广泛使用的编程语言,在网络编程领域有着不可或缺的地位。本文将带你轻松入门Java网络编程,通过实战案例解析,帮助你掌握核心技能,轻松上手。

一、Java网络编程基础

1. 网络编程概述

网络编程是指在不同计算机之间进行数据传输和处理的技术。Java提供了丰富的API支持网络编程,主要包括java.net包中的类。

2. 基本概念

  • IP地址:标识网络中的设备。
  • 端口号:标识进程。
  • 协议:规定数据传输的规则。

3. Java网络编程核心类

  • InetAddress:用于获取IP地址。
  • Socket:实现客户端和服务器之间的通信。
  • ServerSocket:用于创建服务器端Socket。

二、Java网络编程实战案例解析

1. 客户端/服务器模型

这是一个经典的网络编程模型,客户端发起请求,服务器响应请求。

客户端代码示例:
import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("127.0.0.1", 6666);
        OutputStream os = socket.getOutputStream();
        PrintWriter pw = new PrintWriter(os);
        pw.write("你好,服务器!");
        pw.flush();
        socket.close();
    }
}
服务器端代码示例:
import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(6666);
        Socket socket = serverSocket.accept();
        InputStream is = socket.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String info = br.readLine();
        System.out.println("客户端信息:" + info);
        socket.close();
        serverSocket.close();
    }
}

2. 文件传输

文件传输是网络编程中常见的应用场景。

客户端代码示例:
import java.io.*;
import java.net.*;

public class FileClient {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("127.0.0.1", 6666);
        File file = new File("test.txt");
        FileInputStream fis = new FileInputStream(file);
        OutputStream os = socket.getOutputStream();
        byte[] buffer = new byte[1024];
        int len;
        while ((len = fis.read(buffer)) != -1) {
            os.write(buffer, 0, len);
        }
        fis.close();
        os.close();
        socket.close();
    }
}
服务器端代码示例:
import java.io.*;
import java.net.*;

public class FileServer {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(6666);
        Socket socket = serverSocket.accept();
        InputStream is = socket.getInputStream();
        FileOutputStream fos = new FileOutputStream("download.txt");
        byte[] buffer = new byte[1024];
        int len;
        while ((len = is.read(buffer)) != -1) {
            fos.write(buffer, 0, len);
        }
        fos.close();
        is.close();
        socket.close();
        serverSocket.close();
    }
}

三、总结

通过本文的实战案例解析,相信你已经对Java网络编程有了初步的了解。在实际开发中,网络编程的应用场景非常广泛,希望你能熟练掌握Java网络编程的核心技能,为你的项目开发助力。