Java网络编程(三)Socket通信代码示例

        Java是一种功能强大的编程语言,它提供了丰富的网络编程功能,使得我们可以轻松地创建网络应用程序。其中,Socket是Java网络编程的核心组件之一,它允许我们在不同的计算机之间建立通信连接。本文将介绍如何使用Java的Socket类进行基本的网络通信。

        首先,我们需要了解Socket的基本概念。Socket是一种抽象的网络通信端点,它可以用于建立客户端和服务器之间的连接。在Java中,我们可以使用java.net包中的Socket类来创建和管理Socket对象。

        下面是一个简单的示例,展示了如何使用Socket进行客户端和服务器之间的通信。首先,我们创建一个服务器端程序,监听指定的端口并接受客户端连接:

一、服务端创建


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

public class Server {
    public static void main(String[] args) {
        try {
            // 创建ServerSocket对象,指定监听的端口
            ServerSocket serverSocket = new ServerSocket(8989);
            
            // 监听客户端连接
            Socket clientSocket = serverSocket.accept();
            
            // 获取输入流和输出流
            BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
            
            // 读取客户端发送的数据
            String message = in.readLine();
            
            // 处理数据
            String response = "Great, " + message + "!";
            
            // 发送响应给客户端
            out.println(response);
            
            // 关闭连接
            clientSocket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

        创建了一个ServerSocket对象,并通过调用`accept()`方法监听客户端连接。一旦有客户端连接到服务器,就会创建一个Socket对象来处理该连接。然后,我们使用输入流和输出流来接收和发送数据。

二、客户端创建

        接下来,创建一个客户端程序,连接到服务器并发送数据:

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

public class Client {
    public static void main(String[] args) {
        try {
            // 创建Socket对象,指定服务器的IP地址和端口
            Socket socket = new Socket("localhost", 8989);
            
            // 获取输入流和输出流
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            
            // 发送数据给服务器
            out.println("SUCCESS");
            
            // 读取服务器的响应
            String response = in.readLine();
            
            // 打印响应
            System.out.println("Server response: " + response);
            
            // 关闭连接
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

        创建了一个Socket对象,并通过指定服务器的IP地址和端口来连接到服务器。然后,我们使用输入流和输出流来发送和接收数据。

通过运行上述服务器端和客户端程序,我们可以在控制台上看到以下输出:

Server response: Great, SUCCESS!

        这表明客户端成功连接到服务器,并且服务器成功处理了客户端发送的数据。

        本文介绍了Java网络编程中Socket的基本用法。通过使用Socket类,我们可以轻松地创建客户端和服务器之间的通信连接,并在它们之间传输数据。希望这篇博客能帮助您入门Java网络编程,并为您构建更复杂的网络应用程序提供基础。

猜你喜欢

转载自blog.csdn.net/java_faep/article/details/132107577