2026最新版 Java网络编程入门教程,新手必看
本文面向Java初学者,系统讲解Java网络编程基础知识。包括TCP、UDP通信原理、Socket编程、客户端与服务器端实现方法、网络调试技巧以及常见问题解决方案。通过分步讲解和示例代码,帮助读者快速掌握Java网络编程技能,并能够实现简单的网络应用。
正文教程
一、网络编程基础
TCP与UDP区别
TCP:面向连接,可靠传输
UDP:无连接,快速传输
Socket简介
Socket是网络通信的接口,实现数据在客户端和服务器端传输
二、创建TCP服务器
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器启动,等待连接...");
Socket socket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String message;
while ((message = in.readLine()) != null) {
System.out.println("收到客户端消息: " + message);
out.println("服务器回复: " + message);
}
socket.close();
serverSocket.close();
}
}
技巧:先启动服务器,再启动客户端连接
三、创建TCP客户端
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8888);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader userInput = new BufferedReader(new InputStreamReader(System.in));
String message;
while ((message = userInput.readLine()) != null) {
out.println(message);
System.out.println("服务器回复: " + in.readLine());
}
socket.close();
}
}
技巧:客户端通过
Socket连接服务器端指定IP和端口
四、UDP通信示例
UDP服务器
import java.net.*;
public class UDPServer {
public static void main(String[] args) throws Exception {
DatagramSocket serverSocket = new DatagramSocket(9999);
byte[] buffer = new byte[1024];
System.out.println("UDP服务器启动...");
while (true) {
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
serverSocket.receive(packet);
String message = new String(packet.getData(), 0, packet.getLength());
System.out.println("收到消息: " + message);
}
}
}
UDP客户端
import java.net.*;
public class UDPClient {
public static void main(String[] args) throws Exception {
DatagramSocket clientSocket = new DatagramSocket();
InetAddress address = InetAddress.getByName("localhost");
byte[] sendData = "Hello UDP Server".getBytes();
DatagramPacket packet = new DatagramPacket(sendData, sendData.length, address, 9999);
clientSocket.send(packet);
clientSocket.close();
}
}
技巧:UDP适合发送短小数据和广播消息
五、网络调试与优化技巧
常用调试方法:
使用
ping测试服务器连通性检查端口是否占用
捕获异常并打印堆栈
性能优化:
多线程处理多个客户端连接
合理设置缓冲区大小
使用NIO提高IO性能
六、实用案例总结
TCP聊天程序:客户端与服务器消息双向传输
UDP广播通知:快速发送实时消息
文件传输:通过Socket传输文件数据