首頁  >  文章  >  Java  >  Java 網路程式設計中常用的協定和函式庫有哪些?

Java 網路程式設計中常用的協定和函式庫有哪些?

PHPz
PHPz原創
2024-05-09 18:21:01505瀏覽

Java 網路程式設計常用協定與函式庫:協定:TCP、UDP、HTTP、HTTPS、FTP函式庫:java.net、java.nio、Apache HttpClient、Netty、OkHttp

Java 网络编程中常用的协议和库有哪些?

#Java 網路編程中的常用協定和函式庫

Java 提供了豐富的函式庫和框架來簡化網路編程,以下列出了一些常用的協定和函式庫:

協議

  • TCP (傳輸控制協議):一種面向連接的協議,提供可靠的、有序的資料傳輸。
  • UDP (用戶資料報協議):一種無連線的協議,提供較低開銷的、不可靠的資料傳輸。
  • HTTP (超文本傳輸協定):用於從 Web 伺服器取得資源的協定。
  • HTTPS (安全超文本傳輸協定):HTTP 的安全版本,使用 TLS/SSL 加密資料傳輸。
  • FTP (檔案傳輸協定):用於在客戶端和伺服器之間傳輸檔案的協定。

  • java.net:Java 中用於網路程式設計的基本函式庫,提供了執行基本網絡操作的方法和類別。
  • java.nio:提供了基於 NIO (非阻塞 I/O) 的更高層級的網路 API,允許多執行緒處理網路事件。
  • Apache HttpClient:一個 流行且易於使用的 HTTP 用戶端,提供了高層次的方法來傳送和接收 HTTP 請求。
  • Netty:一個高效能的 I/O 框架,提供了多種協定支持,包括 TCP、UDP 和 HTTP。
  • OkHttp:一個輕量級且非同步的 HTTP 用戶端,針對行動裝置進行了最佳化。

實戰案例

傳送HTTP GET 請求

import java.net.HttpURLConnection;
import java.net.URL;

public class HttpGetExample {

    public static void main(String[] args) throws Exception {
        String url = "https://www.example.com";

        // 创建 HttpURLConnection
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // 设置请求方法和内容类型
        con.setRequestMethod("GET");
        con.setRequestProperty("Content-Type", "application/json");

        // 发送请求并获取响应代码
        int responseCode = con.getResponseCode();

        // 打印响应正文
        System.out.println("Response Code: " + responseCode);
        Scanner scanner = new Scanner(con.getInputStream());
        while (scanner.hasNextLine()) {
            System.out.println(scanner.nextLine());
        }
        scanner.close();
    }
}

建立TCP 伺服器

#
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServerExample {

    public static void main(String[] args) throws Exception {
        // 监听端口
        int port = 8080;

        // 创建 ServerSocket
        ServerSocket serverSocket = new ServerSocket(port);

        // 循环等待客户端连接
        while (true) {
            // 接受客户端连接
            Socket clientSocket = serverSocket.accept();
            
            // 创建新线程处理客户端连接
            Thread thread = new Thread(() -> {
                try {
                    // 获取客户端输入流
                    BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
                    
                    // 打印客户端发来的数据
                    String line;
                    while ((line = in.readLine()) != null) {
                        System.out.println("Message from client: " + line);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            });
            thread.start();
        }
    }
}

以上是Java 網路程式設計中常用的協定和函式庫有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn