Java TCP服务器端

简介

TCP (传输控制协议) 是一种面向连接的网络协议,用于在网络中传输数据。Java提供了Socket类和ServerSocket类来实现TCP服务器和客户端的通信。在本文中,我们将介绍如何使用Java编写一个简单的TCP服务器端。

TCP服务器端的实现步骤

  1. 创建ServerSocket对象并绑定端口。
  2. 调用ServerSocket的accept()方法,等待客户端连接。
  3. 使用accept()方法返回的Socket对象与客户端进行通信。
  4. 关闭Socket和ServerSocket。

下面是一个简单的TCP服务器端的代码示例:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {
    public static void main(String[] args) {
        try {
            // 创建ServerSocket对象并绑定端口
            ServerSocket serverSocket = new ServerSocket(9999);
            
            System.out.println("服务器已启动,等待客户端连接...");
            
            // 等待客户端连接
            Socket clientSocket = serverSocket.accept();
            
            System.out.println("客户端已连接:" + clientSocket.getInetAddress().getHostAddress());
            
            // 获取输入流和输出流
            InputStream inputStream = clientSocket.getInputStream();
            OutputStream outputStream = clientSocket.getOutputStream();
            
            // 读取客户端发送的数据
            byte[] buffer = new byte[1024];
            int length = inputStream.read(buffer);
            String data = new String(buffer, 0, length);
            
            System.out.println("客户端发送的数据:" + data);
            
            // 发送响应给客户端
            String response = "Hello, Client!";
            outputStream.write(response.getBytes());
            
            // 关闭输入流、输出流和Socket
            inputStream.close();
            outputStream.close();
            clientSocket.close();
            
            System.out.println("与客户端的通信已结束。");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们创建了一个ServerSocket对象,并将其绑定到9999端口。然后,我们使用accept()方法等待客户端连接。一旦有客户端连接成功,accept()方法将返回一个Socket对象,该对象用于与客户端进行通信。

我们通过获取Socket对象的输入流和输出流来进行数据的读取和发送。在本例中,我们使用了字节流,读取了客户端发送的数据,并打印出来。然后,我们发送了一个简单的响应给客户端。

最后,我们关闭了输入流、输出流和Socket,并打印了通信结束的消息。

总结

通过上述步骤,我们可以使用Java编写一个简单的TCP服务器端。这个服务器端可以接受客户端的连接,并进行数据的读取和发送。在实际应用中,我们可以根据需求对服务器端进行扩展,添加更多的功能。

希望本文对你理解和使用Java TCP服务器端有所帮助!

参考文献

  • Oracle官方文档:[Java Networking and Proxies](

附录

代码清单

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {
    public static void main(String[] args) {
        try {
            // 创建ServerSocket对象并绑定端口
            ServerSocket serverSocket = new ServerSocket(9999);
            
            System.out.println("服务器已启动,等待客户端连接...");
            
            // 等待客户端连接
            Socket clientSocket = serverSocket.accept();
            
            System.out.println("客户端已连接:" + clientSocket.getInetAddress().getHostAddress());
            
            // 获取输入流和输出流
            InputStream inputStream = clientSocket.getInputStream();
            OutputStream outputStream = clientSocket.getOutputStream();
            
            // 读取客户端发送的数据
            byte[] buffer = new byte[1024];
            int length = inputStream.read(buffer);
            String data = new String(buffer, 0, length);
            
            System.out.println("客户端发送的数据:" + data);
            
            // 发送响应给客户端
            String response = "Hello, Client!";
            outputStream.write(response.getBytes());
            
            // 关闭输入流、输出流和Socket
            inputStream.close();
            outputStream.close();
            clientSocket.close();
            
            System.out.println("与客户端的通信已结束。