Java Socket 服务端发送指南

1. 概述

在本指南中,我将向你介绍如何使用 Java Socket 实现服务端发送功能。通过这篇文章,你将学到如何创建一个 Socket 服务器,并发送数据给客户端。

2. 整体流程

下面是实现该功能的整体流程,我们将在后续的步骤中逐一讲解每个步骤的具体实现方法。

步骤 描述
1 创建一个 ServerSocket 对象,监听指定的端口号
2 使用 accept() 方法等待客户端的连接请求
3 接受客户端的连接请求,并创建一个新的 Socket 对象来处理该连接
4 通过 Socket 对象获取输入输出流
5 使用输出流发送数据给客户端
6 关闭连接

现在让我们开始逐步实现这些步骤。

3. 创建 ServerSocket 对象

首先,我们需要创建一个 ServerSocket 对象,并指定一个端口号来监听客户端的连接请求。下面是创建 ServerSocket 对象并设置端口号的代码:

import java.net.ServerSocket;
import java.io.IOException;

public class Server {
    public static void main(String[] args) {
        try {
            int port = 8080; // 设置端口号
            ServerSocket serverSocket = new ServerSocket(port); // 创建 ServerSocket 对象
            System.out.println("服务器已启动,正在监听端口 " + port);
            
            // 其他操作...
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4. 等待连接请求

接下来,我们需要使用 accept() 方法等待客户端的连接请求,并创建一个新的 Socket 对象来处理该连接。下面是等待连接请求并创建 Socket 对象的代码:

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

public class Server {
    public static void main(String[] args) {
        try {
            int port = 8080; // 设置端口号
            ServerSocket serverSocket = new ServerSocket(port); // 创建 ServerSocket 对象
            System.out.println("服务器已启动,正在监听端口 " + port);
            
            Socket clientSocket = serverSocket.accept(); // 等待连接请求,并创建 Socket 对象处理连接
            System.out.println("与客户端连接成功!客户端地址:" + clientSocket.getInetAddress());
            
            // 其他操作...
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

5. 获取输入输出流

接下来,我们需要通过 Socket 对象来获取输入输出流,以便进行数据的读取和发送。下面是获取输入输出流的代码:

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

public class Server {
    public static void main(String[] args) {
        try {
            int port = 8080; // 设置端口号
            ServerSocket serverSocket = new ServerSocket(port); // 创建 ServerSocket 对象
            System.out.println("服务器已启动,正在监听端口 " + port);
            
            Socket clientSocket = serverSocket.accept(); // 等待连接请求,并创建 Socket 对象处理连接
            System.out.println("与客户端连接成功!客户端地址:" + clientSocket.getInetAddress());
            
            InputStream inputStream = clientSocket.getInputStream(); // 获取输入流
            OutputStream outputStream = clientSocket.getOutputStream(); // 获取输出流
            
            // 其他操作...
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

6. 发送数据给客户端

现在我们已经获取了输入输出流,可以开始发送数据给客户端了。下面是发送数据给客户端的代码:

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

public class Server {
    public static void main(String[] args) {
        try {
            int port = 8080; // 设置端口号
            ServerSocket serverSocket = new ServerSocket(port); // 创建 ServerSocket 对象
            System.out.println("服务器已启动,正在监听端口 " + port);
            
            Socket clientSocket = serverSocket.accept(); // 等待连接请求,并创建 Socket 对象处理连接
            System.out.println("与客户端连接成功!客户端地址:" + clientSocket.getInetAddress());
            
            InputStream inputStream = clientSocket.getInputStream(); // 获取输入流
            OutputStream outputStream = clientSocket.getOutputStream(); // 获取输出流
            
            // 发送