温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java Socket套接字如何实现通信

发布时间:2025-11-08 05:38:24 来源:亿速云 阅读:100 作者:小樊 栏目:编程语言

在Java中,使用Socket套接字实现通信主要涉及到两个类:java.net.Socket和java.net.ServerSocket。一个用于客户端,另一个用于服务器端。以下是使用Socket套接字实现通信的基本步骤:

  1. 服务器端: a. 创建一个ServerSocket对象,指定一个端口号。 b. 调用ServerSocket对象的accept()方法,等待客户端连接。 c. 当客户端连接时,accept()方法返回一个新的Socket对象,用于与客户端进行通信。 d. 使用Socket对象的getInputStream()和getOutputStream()方法获取输入流和输出流,以便读取和发送数据。 e. 关闭Socket和ServerSocket对象。

  2. 客户端: a. 创建一个Socket对象,指定服务器的IP地址和端口号。 b. 使用Socket对象的getInputStream()和getOutputStream()方法获取输入流和输出流,以便读取和发送数据。 c. 关闭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));

        OutputStream outputStream = socket.getOutputStream();
        PrintWriter writer = new PrintWriter(outputStream, true);

        String message = reader.readLine();
        System.out.println("Received from client: " + message);

        writer.println("Hello, client!");

        reader.close();
        writer.close();
        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");

        InputStream inputStream = socket.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

        OutputStream outputStream = socket.getOutputStream();
        PrintWriter writer = new PrintWriter(outputStream, true);

        writer.println("Hello, server!");

        String message = reader.readLine();
        System.out.println("Received from server: " + message);

        reader.close();
        writer.close();
        socket.close();
    }
}

在这个示例中,服务器监听端口12345,客户端连接到服务器并发送一条消息。服务器接收消息后,向客户端发送一条回复。然后双方关闭连接。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手