TypechoJoeTheme

至尊技术网

登录
用户名
密码

如何用Java进行TCP通信Java客户端与服务器通信实例

2025-12-13
/
0 评论
/
37 阅读
/
正在检测是否收录...
12/13

标题:Java实现TCP通信:客户端与服务器交互实例
关键词:Java TCP通信, Socket编程, 客户端服务器交互, 网络编程
描述:本文详细讲解如何使用Java实现TCP通信,包含客户端与服务器的完整代码实例,帮助开发者快速掌握Socket编程的核心技术。

正文:

在网络编程中,TCP通信因其可靠性和有序性成为主流选择。Java通过SocketServerSocket类提供了简洁的API,使得开发者能够轻松实现客户端与服务器的双向通信。本文将带你一步步完成一个完整的TCP通信实例。

1. TCP通信基本原理

TCP(传输控制协议)是一种面向连接的协议,通信前需通过“三次握手”建立连接。Java中:
- 服务器端:使用ServerSocket监听指定端口,通过accept()等待客户端连接。
- 客户端:通过Socket指定服务器IP和端口发起连接请求。
连接建立后,双方通过输入输出流(InputStream/OutputStream)交换数据。

2. 服务器端实现

服务器端代码需完成端口监听、接收客户端请求及数据交互:

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();
    }
}

3. 客户端实现

客户端代码负责连接服务器并发送消息:

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();
    }
}

4. 运行与测试

  1. 先启动服务器端程序,进入监听状态。
  2. 运行客户端程序,控制台输入消息(如“Hello”),服务器会返回“服务器回复:Hello”。
  3. 输入exit可终止连接(需自行扩展逻辑)。

5. 关键点解析

  • 端口冲突:确保端口未被占用(如8888)。
  • 流关闭顺序:先关闭输出流,再关闭输入流,避免资源泄漏。
  • 异常处理:实际项目中需添加try-catch块处理IOException
  • 多线程:若需支持多客户端,服务器需为每个连接创建独立线程。

通过这个实例,你可以快速掌握Java TCP通信的核心流程。在此基础上,可进一步扩展为文件传输、即时通讯等复杂应用。

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/41177/(转载时请注明本文出处及文章链接)

评论 (0)