Rumah  >  Artikel  >  Java  >  Bagaimanakah aliran Java I/O digunakan bersama-sama dengan komunikasi rangkaian?

Bagaimanakah aliran Java I/O digunakan bersama-sama dengan komunikasi rangkaian?

WBOY
WBOYasal
2024-04-13 22:27:01569semak imbas

Strim I/O Java digunakan bersama dengan komunikasi rangkaian untuk menyediakan mekanisme standard untuk mengendalikan interaksi data rangkaian. Capai ini melalui langkah berikut: Wujudkan sambungan Soket. Dapatkan aliran input/output Soket. Baca data Soket menggunakan aliran input. Gunakan aliran keluaran untuk menulis data Soket.

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

Penggunaan gabungan strim Java I/O dan komunikasi rangkaian

Memahami strim I/O

I/O (input/output) strim digunakan dalam Java untuk membaca dan menulis atau Abstraksi rangkaian untuk menulis data. Mereka menyediakan mekanisme mudah alih standard untuk mengendalikan sumber data yang berbeza.

Memahami Komunikasi Rangkaian

Java menyediakan API yang mantap untuk komunikasi rangkaian, termasuk mencipta soket, menghantar dan menerima data. Kelas Socket ialah teras komunikasi rangkaian dan mewakili sambungan ke komputer jauh.

Penggunaan gabungan strim I/O dan komunikasi rangkaian

Strim I/O dan komunikasi rangkaian boleh disepadukan bersama untuk mencapai interaksi data melalui rangkaian. Berikut ialah langkah khusus:

  1. Buat Soket dan buat sambungan dengan komputer jauh.
  2. Dapatkan aliran input (InputStream) dan aliran output (OutputStream) Soket.
  3. Gunakan aliran input untuk membaca data daripada Soket, sama seperti membaca data daripada fail atau konsol.
  4. Gunakan strim output untuk menulis data ke Soket, sama seperti menulis ke fail atau konsol.

Kes praktikal

Berikut ialah aplikasi sembang pelanggan-pelayan yang dilaksanakan di Java, menunjukkan penggunaan gabungan aliran I/O dan komunikasi rangkaian:

Pelanggan:

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();
        }
    }
}

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();
        }
    }
}

:rrreee

Run
  1. java Server
  2. 启动客户端:java Client
  3. Mulakan pelayan: java Server
🎜Mulakan klien: java Client🎜🎜

Atas ialah kandungan terperinci Bagaimanakah aliran Java I/O digunakan bersama-sama dengan komunikasi rangkaian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn