温馨提示×

Java里socket数据如何传输

小樊
81
2024-09-30 01:15:20
栏目: 编程语言

在Java中,Socket数据传输主要涉及到两个类:java.net.Socket(用于客户端)和java.net.ServerSocket(用于服务器端)。以下是一个简单的示例,展示了如何使用这两个类进行数据传输。

服务器端

  1. 创建一个ServerSocket对象,指定要监听的端口号。
  2. 调用ServerSocket对象的accept()方法,等待客户端连接。
  3. 当客户端连接时,accept()方法返回一个新的Socket对象,用于与客户端进行通信。
  4. 使用Socket对象的输入流(getInputStream())和输出流(getOutputStream())进行数据读写。
  5. 关闭Socket对象。

客户端

  1. 创建一个Socket对象,指定服务器的IP地址和端口号。
  2. 使用Socket对象的输入流(getInputStream())和输出流(getOutputStream())进行数据读写。
  3. 关闭Socket对象。

以下是一个简单的Java Socket数据传输示例:

服务器端代码

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

public class Server {
    public static void main(String[] args) throws IOException {
        int port = 12345;
        ServerSocket serverSocket = new ServerSocket(port);
        System.out.println("Server is listening on port " + port);

        Socket socket = serverSocket.accept();
        System.out.println("Client connected");

        InputStream inputStream = socket.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String message = reader.readLine();
        System.out.println("Received message: " + message);

        OutputStream outputStream = socket.getOutputStream();
        PrintWriter writer = new PrintWriter(outputStream, true);
        writer.println("Hello from server");

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

客户端代码

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

public class Client {
    public static void main(String[] args) throws IOException {
        String serverAddress = "localhost";
        int port = 12345;

        Socket socket = new Socket(serverAddress, port);
        System.out.println("Connected to server");

        OutputStream outputStream = socket.getOutputStream();
        PrintWriter writer = new PrintWriter(outputStream, true);
        writer.println("Hello from client");

        InputStream inputStream = socket.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String message = reader.readLine();
        System.out.println("Received message: " + message);

        socket.close();
    }
}

在这个示例中,服务器监听端口12345,并在接收到客户端连接后,与客户端进行数据交换。客户端连接到服务器并发送一条消息,然后服务器回复一条消息。最后,双方都关闭了Socket连接。

0