Java作为一种强大的编程语言,广泛应用于企业级应用开发、Android应用开发以及网络编程等多个领域。网络编程是Java的核心技术之一,掌握它对于成为一名优秀的Java开发者至关重要。本文将带你轻松上手Java网络编程,通过实战案例教学,让你快速掌握核心技术。
Java网络编程基础
1. Java网络编程概述
Java网络编程主要基于Java的java.net包实现。这个包提供了丰富的类和接口,用于处理网络通信。
2. 基本概念
- IP地址:用于标识网络中的设备。
- 端口号:用于标识同一台设备上的不同服务。
- 协议:用于数据传输的规则。
3. 常用类和接口
- InetAddress:用于获取IP地址。
- Socket:用于创建网络连接。
- ServerSocket:用于监听端口,等待客户端连接。
Java网络编程实战案例
1. TCP客户端/服务器模型
客户端
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1", 6666);
OutputStream os = socket.getOutputStream();
PrintWriter out = new PrintWriter(os, true);
out.println("Hello, Server!");
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = br.readLine();
System.out.println("Server says: " + line);
socket.close();
}
}
服务器
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(6666);
System.out.println("Server is running...");
Socket socket = serverSocket.accept();
System.out.println("Client connected!");
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = br.readLine();
System.out.println("Client says: " + line);
OutputStream os = socket.getOutputStream();
PrintWriter out = new PrintWriter(os, true);
out.println("Hello, Client!");
socket.close();
serverSocket.close();
}
}
2. UDP通信
发送方
import java.io.*;
import java.net.*;
public class UDPSender {
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket();
InetAddress address = InetAddress.getByName("127.0.0.1");
byte[] data = "Hello, UDP!".getBytes();
DatagramPacket packet = new DatagramPacket(data, data.length, address, 6666);
socket.send(packet);
socket.close();
}
}
接收方
import java.io.*;
import java.net.*;
public class UDPReceiver {
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket(6666);
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
String data = new String(packet.getData(), 0, packet.getLength());
System.out.println("Received: " + data);
socket.close();
}
}
总结
通过本文的学习,相信你已经对Java网络编程有了初步的了解。在实际开发过程中,网络编程技术会不断更新,需要我们持续学习和实践。希望本文能帮助你轻松上手Java网络编程,掌握核心技术。
