Java Socket 接收数据

简介

Java Socket是一种网络通信机制,它提供了一种在不同计算机之间进行数据传输的方式。在网络应用程序中,常常需要通过Socket进行数据收发。本文将介绍如何使用Java Socket来接收数据。

基本原理

Java Socket是基于TCP/IP协议实现的,它提供了两个主要的类:ServerSocket和Socket。ServerSocket用于监听来自客户端的连接请求,一旦有连接请求到达,ServerSocket会创建一个Socket对象与客户端进行通信。

Socket通常由一个IP地址和一个端口号组成,它可以和其他Socket建立一对一的连接,进行数据传输。

代码示例

下面是一个使用Java Socket接收数据的示例代码:

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

public class SocketReceiver {
    public static void main(String[] args) {
        int portNumber = 12345; // 监听的端口号
        
        try (ServerSocket serverSocket = new ServerSocket(portNumber)) {
            Socket clientSocket = serverSocket.accept(); // 等待客户端连接
            
            // 获取输入流
            BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            
            String receivedData;
            while ((receivedData = in.readLine()) != null) {
                System.out.println("Received: " + receivedData);
            }
            
            // 关闭连接
            clientSocket.close();
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

以上代码创建了一个ServerSocket对象并监听指定的端口号。一旦有客户端连接到达,它将创建一个Socket对象与客户端进行通信。

通过获取Socket的输入流,我们可以读取客户端发送的数据。在示例代码中,我们使用BufferedReader类来读取数据,并在控制台输出。

流程图

下面是一个使用流程图表示的Java Socket数据接收的流程:

st=>start: 开始
op1=>operation: 创建ServerSocket对象
op2=>operation: 等待客户端连接
op3=>operation: 获取Socket对象
op4=>operation: 获取输入流
op5=>operation: 读取数据
op6=>operation: 处理数据
op7=>operation: 关闭连接
e=>end: 结束

st->op1->op2->op3->op4->op5->op6->op7->e

总结

使用Java Socket接收数据需要创建ServerSocket和Socket对象,并通过获取Socket的输入流来读取数据。本文提供了一个简单的示例代码,并使用流程图展示了整个流程。

希望本文能够帮助你了解如何使用Java Socket接收数据。