La bibliothèque de fonctions Java fournit une série d'outils de communication réseau, notamment le package java.net (fournissant des classes de réseau de base), le package java.nio (fournissant une API d'E/S hautes performances) et d'autres outils utiles tels que Apache HttpClient. , Netty et gRPC Java). Ces outils permettent aux développeurs de créer des applications client et serveur, d'envoyer et de recevoir facilement des données et de gérer les connexions réseau.
Outils de communication réseau courants dans la bibliothèque Java
Le langage de programmation Java fournit une série de bibliothèques de fonctions et de classes puissantes pour créer des applications de communication réseau fiables et efficaces. Ces outils permettent aux développeurs de communiquer facilement entre clients et serveurs, d'envoyer et de recevoir des données et de gérer les connexions réseau. Voici quelques-uns des outils de communication réseau les plus couramment utilisés dans la bibliothèque de fonctions Java :
Package java.net
Le package java.net
contient les principales classes et interfaces de communication réseau fournies par Java. plate-forme. Il prend en charge les sockets TCP/IP, les URL, les URI et d'autres infrastructures réseau. java.net
包包含 Java 平台提供的核心网络通信类和接口。它为 TCP/IP 套接字、URL、URI 和其他网络基础设施提供了支持。
实战案例:使用 Socket 创建简单客户端和服务器
// 客户端 import java.net.*; public class SocketClient { public static void main(String[] args) throws Exception { // 创建 Socket 并连接到服务器 Socket socket = new Socket("localhost", 8080); // 获取输出流并发送消息 DataOutputStream out = new DataOutputStream(socket.getOutputStream()); out.writeUTF("Hello from client!"); // 关闭输出流和 Socket out.close(); socket.close(); } } // 服务器 import java.net.*; public class SocketServer { public static void main(String[] args) throws Exception { // 创建 ServerSocket 并侦听连接 ServerSocket serverSocket = new ServerSocket(8080); while (true) { // 接受客户端连接 Socket clientSocket = serverSocket.accept(); // 获取输入流并读取消息 DataInputStream in = new DataInputStream(clientSocket.getInputStream()); String message = in.readUTF(); System.out.println("Received message: " + message); // 关闭输入流和 Socket in.close(); clientSocket.close(); } } }
java.nio 包
java.nio
: Uniform Resource Identifier, utilisé pour identifier de manière unique les ressources du réseau.
Cas pratique : Utiliser Socket pour créer des clients et des serveurs simples
// 服务器 import java.net.*; import java.nio.*; import java.nio.channels.*; public class NonBlockingServerSocket { public static void main(String[] args) throws Exception { // 创建 ServerSocketChannel 并绑定到端口 ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); serverSocketChannel.bind(new InetSocketAddress(8080)); serverSocketChannel.configureBlocking(false); // 创建 Selector 并注册 ServerSocketChannel Selector selector = Selector.open(); serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT); while (true) { // 侦听可用的选择键 int readyKeys = selector.select(); if (readyKeys == 0) { continue; } // 处理可用的选择键 Iterator<SelectionKey> keys = selector.selectedKeys().iterator(); while (keys.hasNext()) { SelectionKey key = keys.next(); keys.remove(); // 处理可接受的键 if (key.isAcceptable()) { SocketChannel clientSocketChannel = serverSocketChannel.accept(); clientSocketChannel.configureBlocking(false); clientSocketChannel.register(selector, SelectionKey.OP_READ); } // 处理可读的键 else if (key.isReadable()) { // ... } } } } }
java.nio
fournit un package non bloquant de bas niveau et hautes performances Package d'E/S O API, utilisé pour gérer la communication réseau. Il fournit les classes principales suivantes : Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!