91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
宾阳县| 龙门县| 铁岭市| 阳原县| 曲靖市| 依兰县| 新竹市| 五指山市| 应城市| 葫芦岛市| 尼勒克县| 宁津县| 台州市| 志丹县| 徐水县| 贵州省| 类乌齐县| 高邑县| 大安市| 田阳县| 靖边县| 惠东县| 南阳市| 当涂县| 化德县| 新营市| 裕民县| 汉源县| 礼泉县| 郑州市| 元江| 建阳市| 阿坝| 宝山区| 六枝特区| 龙江县| 揭东县| 阳泉市| 安仁县| 湾仔区| 灵璧县|