悠悠楠杉
网站页面
标题:Java实现TCP通信:客户端与服务器交互实例
关键词:Java TCP通信, Socket编程, 客户端服务器交互, 网络编程
描述:本文详细讲解如何使用Java实现TCP通信,包含客户端与服务器的完整代码实例,帮助开发者快速掌握Socket编程的核心技术。
正文:
在网络编程中,TCP通信因其可靠性和有序性成为主流选择。Java通过Socket和ServerSocket类提供了简洁的API,使得开发者能够轻松实现客户端与服务器的双向通信。本文将带你一步步完成一个完整的TCP通信实例。
TCP(传输控制协议)是一种面向连接的协议,通信前需通过“三次握手”建立连接。Java中:
- 服务器端:使用ServerSocket监听指定端口,通过accept()等待客户端连接。
- 客户端:通过Socket指定服务器IP和端口发起连接请求。
连接建立后,双方通过输入输出流(InputStream/OutputStream)交换数据。
服务器端代码需完成端口监听、接收客户端请求及数据交互:
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) throws IOException {
int port = 8888;
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("服务器启动,监听端口:" + port);
Socket clientSocket = serverSocket.accept(); // 阻塞等待客户端连接
System.out.println("客户端已连接:" + clientSocket.getInetAddress());
// 获取输入输出流
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String clientMessage;
while ((clientMessage = in.readLine()) != null) {
System.out.println("客户端消息:" + clientMessage);
out.println("服务器回复:" + clientMessage); // 回声模式
}
// 关闭资源
in.close();
out.close();
clientSocket.close();
serverSocket.close();
}
}客户端代码负责连接服务器并发送消息:
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) throws IOException {
String serverIP = "127.0.0.1";
int port = 8888;
Socket socket = new Socket(serverIP, port);
System.out.println("已连接到服务器:" + serverIP);
// 获取输入输出流
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 发送消息
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = consoleReader.readLine()) != null) {
out.println(userInput);
System.out.println("服务器响应:" + in.readLine()); // 接收回复
}
// 关闭资源
in.close();
out.close();
socket.close();
}
}exit可终止连接(需自行扩展逻辑)。8888)。try-catch块处理IOException。通过这个实例,你可以快速掌握Java TCP通信的核心流程。在此基础上,可进一步扩展为文件传输、即时通讯等复杂应用。