以下是一个简单的基于 Socket 的网络程序设计示例,展示了如何使用 Socket 创建一个服务器和客户端,实现基本的网络通信。示例代码涵盖了服务器监听、客户端连接、数据收发等关键步骤。

服务器端代码:

import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(8888);
        System.out.println('服务器已启动,等待客户端连接...');
        Socket socket = serverSocket.accept();
        System.out.println('客户端已连接');

        BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);

        String message;
        while ((message = reader.readLine()) != null) {
            System.out.println('客户端发来消息:' + message);
            writer.println('服务器已收到消息:' + message);
        }

        reader.close();
        writer.close();
        socket.close();
        serverSocket.close();
    }
}

客户端代码:

import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket('localhost', 8888);
        System.out.println('已连接到服务器');

        BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);

        BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
        String message;
        while ((message = console.readLine()) != null) {
            writer.println(message);
            System.out.println(reader.readLine());
        }

        console.close();
        reader.close();
        writer.close();
        socket.close();
    }
}

在运行时,先运行 Server 类,再运行 Client 类,即可实现客户端和服务器端的简单通信。

注意:

  • 服务器端代码使用 ServerSocket 类创建监听端口,并使用 accept() 方法等待客户端连接。
  • 客户端代码使用 Socket 类连接到服务器,并使用 getInputStream()getOutputStream() 方法获取输入输出流进行数据传输。
  • 代码中使用了 BufferedReaderPrintWriter 类方便地进行文本数据的读写操作。
  • 为了确保程序正常关闭,代码中在最后关闭了所有资源,包括 SocketServerSocketBufferedReaderPrintWriter 等。

通过这个示例,您可以学习到使用 Java Socket 进行简单的网络编程,为进一步开发更复杂的网络应用程序打下基础。

Java Socket 网络编程入门:简单服务器和客户端示例

原文地址: https://www.cveoy.top/t/topic/oX8i 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录