0
点赞
收藏
分享

微信扫一扫

java socket字符流

我阿霆哥 2023-08-06 阅读 53

实现Java Socket字符流

摘要

本文旨在教授一位刚入行的小白如何实现Java Socket字符流。首先,将介绍整个实现过程的流程图,并详细说明每个步骤需要做什么以及所使用的代码。通过本文,小白将了解如何使用Java Socket实现字符流通信。

流程图

st=>start: 开始
op1=>operation: 创建ServerSocket对象,指定端口号
op2=>operation: 调用accept()方法等待客户端连接
op3=>operation: 获取输入流,读取客户端发送的数据
op4=>operation: 获取输出流,发送数据到客户端
e=>end: 结束

st->op1->op2->op3->op4->e

步骤和代码

步骤1:创建ServerSocket对象,指定端口号

首先,我们需要创建一个ServerSocket对象,指定一个端口号,以便客户端可以连接到该端口。

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

public class Server {
    public static void main(String[] args) {
        int port = 8080; // 指定端口号

        try {
            ServerSocket serverSocket = new ServerSocket(port); // 创建ServerSocket对象
            System.out.println("服务器启动成功,等待客户端连接...");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

代码说明:

  • import java.net.ServerSocket: 导入ServerSocket类。
  • int port = 8080: 指定一个端口号,可以根据实际需要进行修改。
  • ServerSocket serverSocket = new ServerSocket(port): 创建ServerSocket对象,并指定端口号。

步骤2:调用accept()方法等待客户端连接

在这一步骤中,我们将调用accept()方法等待客户端连接。

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

public class Server {
    public static void main(String[] args) {
        int port = 8080;

        try {
            ServerSocket serverSocket = new ServerSocket(port);
            System.out.println("服务器启动成功,等待客户端连接...");

            Socket clientSocket = serverSocket.accept(); // 等待客户端连接
            System.out.println("客户端连接成功,IP地址:" + clientSocket.getInetAddress());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

代码说明:

  • import java.net.Socket: 导入Socket类。
  • Socket clientSocket = serverSocket.accept(): 调用accept()方法等待客户端连接,并返回与客户端通信的Socket对象。

步骤3:获取输入流,读取客户端发送的数据

在这一步骤中,我们将获取与客户端通信的Socket对象的输入流,并读取客户端发送的数据。

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

public class Server {
    public static void main(String[] args) {
        int port = 8080;

        try {
            ServerSocket serverSocket = new ServerSocket(port);
            System.out.println("服务器启动成功,等待客户端连接...");

            Socket clientSocket = serverSocket.accept();
            System.out.println("客户端连接成功,IP地址:" + clientSocket.getInetAddress());

            BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); // 获取输入流
            String message = reader.readLine(); // 读取客户端发送的数据
            System.out.println("客户端发送的数据:" + message);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

代码说明:

  • import java.io.BufferedReader: 导入BufferedReader类。
  • import java.io.InputStreamReader: 导入InputStreamReader类。
  • BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())): 创建BufferedReader对象,并使用InputStreamReader将Socket对象的输入流包装起来。
  • String message = reader.readLine(): 调用readLine()方法读取客户端发送的数据。

步骤4:获取输出流,发送数据到客户端

在这一步骤中,我们将获取与客户端通信的Socket对象的输出流,并发送数据到客户端。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) {
        int port =
举报

相关推荐

0 条评论