温馨提示×

温馨提示×

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

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

Java IO如何实现网络通信

发布时间:2025-08-30 00:50:41 来源:亿速云 阅读:105 作者:小樊 栏目:编程语言

在Java中,可以使用java.io包中的类和java.net包中的类来实现网络通信。这里以一个简单的TCP/IP客户端-服务器示例来说明如何使用Java IO进行网络通信。

  1. 首先,创建一个TCP服务器:
import java.io.*;
import java.net.*;

public class TCPServer {
    public static void main(String[] args) {
        int port = 12345; // 服务器监听的端口号

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

            while (true) {
                Socket socket = serverSocket.accept(); // 接受客户端连接
                System.out.println("客户端已连接");

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

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

                String message;
                while ((message = reader.readLine()) != null) {
                    System.out.println("收到客户端消息: " + message);
                    writer.println("服务器已收到: " + message);
                }

                socket.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  1. 然后,创建一个TCP客户端:
import java.io.*;
import java.net.*;

public class TCPClient {
    public static void main(String[] args) {
        String host = "localhost"; // 服务器地址
        int port = 12345; // 服务器监听的端口号

        try (Socket socket = new Socket(host, port)) {
            OutputStream outputStream = socket.getOutputStream();
            PrintWriter writer = new PrintWriter(outputStream, true);

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

            // 向服务器发送消息
            writer.println("你好,服务器!");

            // 接收服务器回复
            String message;
            while ((message = reader.readLine()) != null) {
                System.out.println("收到服务器消息: " + message);
            }
        } catch (UnknownHostException e) {
            System.out.println("无法找到服务器");
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们使用TCP协议进行网络通信。服务器端使用ServerSocket类监听指定端口,等待客户端连接。当客户端连接时,服务器使用Socket类与客户端建立连接,并通过输入输出流进行数据交换。

客户端使用Socket类连接到服务器,并通过输入输出流进行数据交换。在这个示例中,客户端向服务器发送一条消息,然后接收服务器的回复。

注意:这个示例仅用于演示目的,实际应用中可能需要考虑更多的异常处理和资源管理。另外,还可以使用UDP协议进行网络通信,但这需要使用DatagramSocketDatagramPacket类。

向AI问一下细节

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

AI