亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Java里socket通信怎樣實現

小樊
82
2024-09-30 00:55:19
欄目: 編程語言

在Java中,使用Socket進行通信主要涉及到兩個類:java.net.Socket(用于客戶端)和java.net.ServerSocket(用于服務器端)。下面是一個簡單的示例,展示了如何使用這兩個類實現基本的TCP通信。

1. 服務器端

import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) throws IOException {
        // 創建一個ServerSocket對象,監聽指定端口
        ServerSocket serverSocket = new ServerSocket(8888);
        System.out.println("Server is listening on port 8888...");

        // 接受來自客戶端的連接
        Socket socket = serverSocket.accept();
        System.out.println("Client connected.");

        // 獲取輸入輸出流
        InputStream inputStream = socket.getInputStream();
        OutputStream outputStream = socket.getOutputStream();

        // 讀取客戶端發送的數據
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String message = reader.readLine();
        System.out.println("Received from client: " + message);

        // 向客戶端發送數據
        PrintWriter writer = new PrintWriter(outputStream, true);
        writer.println("Hello from server!");

        // 關閉資源
        reader.close();
        writer.close();
        socket.close();
        serverSocket.close();
    }
}

2. 客戶端

import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) throws IOException {
        // 創建一個Socket對象,連接到服務器的IP地址和端口
        Socket socket = new Socket("localhost", 8888);
        System.out.println("Connected to server.");

        // 獲取輸入輸出流
        InputStream inputStream = socket.getInputStream();
        OutputStream outputStream = socket.getOutputStream();

        // 向服務器發送數據
        PrintWriter writer = new PrintWriter(outputStream, true);
        writer.println("Hello from client!");

        // 讀取服務器發送的數據
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        String message = reader.readLine();
        System.out.println("Received from server: " + message);

        // 關閉資源
        reader.close();
        writer.close();
        socket.close();
    }
}

在這個示例中,服務器監聽8888端口,并在接受到客戶端連接后,通過輸入輸出流與客戶端進行通信。客戶端連接到服務器的IP地址和端口,然后通過輸入輸出流與服務器進行通信。

注意:在實際應用中,你可能需要處理更多的異常情況,例如連接超時、網絡中斷等。此外,為了提高程序的健壯性,你還可以考慮使用多線程來處理多個客戶端的連接。

0
东辽县| 中阳县| 瑞金市| 井冈山市| 攀枝花市| 双峰县| 韶山市| 栖霞市| 莲花县| 襄垣县| 亚东县| 儋州市| 青州市| 辽宁省| 甘德县| 开阳县| 九台市| 永顺县| 车致| 广丰县| 日土县| 额济纳旗| 永福县| 澎湖县| 镶黄旗| 梨树县| 大安市| 德保县| 当阳市| 工布江达县| 揭西县| 宜州市| 镇赉县| 无为县| 台中市| 南溪县| 贵州省| 灯塔市| 祁连县| 茂名市| 冀州市|