引言

在互联网高速发展的今天,网络编程已成为计算机科学领域的重要组成部分。Java作为一种跨平台、面向对象的编程语言,在网络编程方面具有强大的优势。本文将带你入门Java网络编程,从Socket、HTTP等核心技术入手,让你轻松掌握网络编程的精髓。

一、Socket编程基础

1.1 Socket概述

Socket是网络编程中的一种抽象概念,它表示网络上两个程序之间的连接。在Java中,Socket编程主要涉及ServerSocket和Socket类。

1.2 创建ServerSocket

public class ServerSocketExample {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(1234);
        System.out.println("Server is listening on port 1234");
    }
}

1.3 创建Socket

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

1.4 通信过程

在创建Socket连接后,双方可以通过输入输出流进行数据传输。以下是一个简单的客户端-服务器通信示例:

public class ServerExample {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(1234);
        Socket socket = serverSocket.accept();
        InputStream inputStream = socket.getInputStream();
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("Hello, client!".getBytes());
        inputStream.close();
        outputStream.close();
        socket.close();
        serverSocket.close();
    }
}

public class ClientExample {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("localhost", 1234);
        InputStream inputStream = socket.getInputStream();
        OutputStream outputStream = socket.getOutputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        System.out.println(reader.readLine());
        outputStream.write("Hello, server!".getBytes());
        inputStream.close();
        outputStream.close();
        socket.close();
    }
}

二、HTTP编程基础

2.1 HTTP概述

HTTP(超文本传输协议)是互联网上应用最为广泛的网络协议之一。Java提供了HttpURLConnection类,方便开发者进行HTTP编程。

2.2 发起HTTP请求

URL url = new URL("http://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
System.out.println(connection.getResponseCode());
connection.disconnect();

2.3 发送POST请求

URL url = new URL("http://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream());
outputStream.writeBytes("key=value");
outputStream.close();
System.out.println(connection.getResponseCode());
connection.disconnect();

三、总结

本文从Socket、HTTP等核心技术入手,介绍了Java网络编程的基础知识。通过学习本文,相信你已经对Java网络编程有了初步的认识。在实际应用中,你可以结合具体场景,深入学习并掌握更多高级技术。祝你网络编程之路越走越远!