Maison  >  Article  >  Java  >  Comment les flux d’E/S Java sont-ils utilisés avec la communication réseau ?

Comment les flux d’E/S Java sont-ils utilisés avec la communication réseau ?

WBOY
WBOYoriginal
2024-04-13 22:27:01524parcourir

Les flux d'E/S Java sont utilisés conjointement avec la communication réseau pour fournir un mécanisme standard permettant de gérer l'interaction des données réseau. Pour ce faire, procédez comme suit : Établissez une connexion Socket. Obtenez le flux d’entrée/sortie Socket. Lisez les données Socket à l’aide d’un flux d’entrée. Utilisez un flux de sortie pour écrire des données Socket.

Java I/O流与网络通信是如何结合使用的?

L'utilisation combinée des flux d'E/S Java et de la communication réseau

Comprendre les flux d'E/S

Les flux d'E/S (entrée/sortie) sont utilisés en Java pour lire et écrire à partir d'un périphérique ou abstraction réseau pour l'écriture de données. Ils fournissent des mécanismes portables standard pour gérer différentes sources de données.

Comprendre la communication réseau

Java fournit une API robuste pour la communication réseau, notamment la création de sockets, l'envoi et la réception de données. La classe Socket est au cœur de la communication réseau et représente une connexion à un ordinateur distant.

Utilisation combinée des flux d'E/S et de la communication réseau

Les flux d'E/S et les communications réseau peuvent être intégrés ensemble pour réaliser une interaction de données sur le réseau. Voici les étapes spécifiques :

  1. Créez un Socket et établissez une connexion avec l'ordinateur distant.
  2. Obtenez le flux d'entrée (InputStream) et le flux de sortie (OutputStream) du Socket.
  3. Utilisez un flux d'entrée pour lire les données d'un Socket, tout comme lire les données d'un fichier ou d'une console.
  4. Utilisez un flux de sortie pour écrire des données sur un Socket, tout comme écrire dans un fichier ou une console.

Cas pratique

Ce qui suit est une application de chat client-serveur implémentée en Java, démontrant l'utilisation combinée des flux d'E/S et de la communication réseau :

Client :

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

public class Client {

    public static void main(String[] args) {
        String hostname = "localhost";
        int port = 5000;

        try (Socket socket = new Socket(hostname, port);
             BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             PrintWriter out = new PrintWriter(socket.getOutputStream())) {

            // 发送消息到服务器
            out.println("Hello from client!");

            // 读取服务器响应
            String serverResponse = in.readLine();
            System.out.println("Received from server: " + serverResponse);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Serveur :

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

public class Server {

    public static void main(String[] args) {
        int port = 5000;

        try (ServerSocket serverSocket = new ServerSocket(port);
             Socket clientSocket = serverSocket.accept();
             BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
             PrintWriter out = new PrintWriter(clientSocket.getOutputStream())) {

            // 读取客户端消息
            String clientMessage = in.readLine();
            System.out.println("Received from client: " + clientMessage);

            // 发送响应到客户端
            out.println("Hello from server!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Exécuter

  1. Démarrer le serveur : java Serverjava Server
  2. 启动客户端:java Client
  3. Démarrer le client : java Client
🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn