网络编程是一种实现不同计算机之间通信的方法,通过发送和接收数据包来交换信息。在Java中,网络编程主要使用套接字(Socket)来实现。套接字是计算机网络中的一种抽象概念,它为网络中的两个程序提供了一种双向通信机制。Java的网络编程涉及到多个类和接口,如java.net包下的Socket、ServerSocket、URL等。
在Java的网络编程中,有两种基本的套接字类型:客户端套接字(Client Socket)和服务器套接字(Server Socket)。客户端套接字用于发起与服务器的连接请求,而服务器套接字则负责侦听并接受这些连接请求。当客户端和服务器成功建立连接后,它们就可以通过输入输出流进行数据的传输。
以下是一个简单的Java网络编程示例,展示了如何创建一个客户端和一个服务器,并通过套接字进行通信:
1. 创建服务器端(Server):
```java import java.io.*; import java.net.*; public class Server { public static void main(String[] args) throws IOException { // 创建一个服务器套接字,绑定到指定端口 ServerSocket serverSocket = new ServerSocket(8888); System.out.println("服务器已启动,等待客户端连接..."); // 等待客户端连接 Socket socket = serverSocket.accept(); System.out.println("客户端已连接:" + socket.getInetAddress()); // 获取输入输出流,进行数据传输 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); String line; while ((line = in.readLine()) != null) { System.out.println("收到客户端消息:" + line); out.println("服务器收到消息:" + line); } // 关闭资源 in.close(); out.close(); socket.close(); serverSocket.close(); } } ```
2. 创建客户端(Client):
```java import java.io.*; import java.net.*; public class Client { public static void main(String[] args) throws IOException { // 创建一个客户端套接字 Socket socket = new Socket("localhost", 8888); System.out.println("已连接到服务器:" + socket.