Java 8 適用的 Sockets API 總覽

這是 Sockets API 的測試版。此 API 不在任何服務水準協議或廢止政策的適用範圍內,而且可能有某些變更不具有回溯相容性。

重要事項:Java 8 執行階段中的應用程式可以使用原生 Java 通訊端,而沒有任何限制,包括使用 NIO 類別及其方法。在 Java 7 執行階段中執行的應用程式受到本頁所述的通訊端限制的約束。


通訊端僅適用於付費應用程式,且來自通訊端的流量是依連出頻寬計費。通訊端也有每日和每分鐘 (爆發) 配額的限制。

Java 7 執行階段支援使用 java.net.Socketjava.net.DatagramSocket 修改版本的有限連出 Java 通訊端。

Java 7 執行階段不支援 java.nio.SocketChannel java.nio 類別,也無法對通訊端呼叫 get 或 set 選項。使用這些功能將會引發 Not Implemented 例外狀況。使用 Java 8 執行階段時,根據預設,將會解除這些限制。

Java 7 執行階段應用程式的支援選項包括:

  • SO_KEEPALIVE
  • SO_DEBUG
  • TCP_NODELAY
  • SO_LINGER
  • SO_OOBINLINE
  • SO_SNDBUF
  • SO_RCVBUF
  • SO_REUSEADDR

限制和規定 (僅限 Java 7 執行階段)

App Engine 針對在 Java 7 執行階段中執行的應用程式提供的通訊端支援具有下列限制:

  • 通訊端僅適用於付費應用程式。
  • 您無法建立監聽通訊端,只能建立傳出通訊端。
  • 不支援 FTP。
  • 在 Java 7 執行階段中,java.net.URL 仍設定為使用 URL Fetch API。如要克服這項限制,您可以在 Java 8 執行階段中執行應用程式,因為 java.net.URLjava.net.HttpURLConnection 會依預設使用 Java 原生通訊端。
  • InetAddress.isReachable 免人工管理。
  • 支援 javax.net.ssl 中的多數類別。
  • 您只能使用 TCP 或 UDP,不能使用任意通訊協定。
  • 您無法繫結至特定 IP 位址或通訊埠。
  • 通訊埠 25 (SMTP) 已遭封鎖,但您仍可在提交通訊埠 587 中使用已驗證的 SMTP。
  • 私人、廣播、多點傳送和 Google IP 範圍已遭封鎖,但下面這些已加入許可清單的項目除外:

    • Google 公用 DNS:8.8.8.88.8.4.42001:4860:4860::88882001:4860:4860::8844 通訊埠 53
    • Gmail SMTPS:smtp.gmail.com 通訊埠 465 和 587
    • Gmail POP3S:pop.gmail.com 通訊埠 995
    • Gmail IMAPS:imap.gmail.com 通訊埠 993
  • 通訊端描述元與建立該描述元的 App Engine 應用程式相關,且無法轉移 (無法由其他應用程式使用)。

  • 系統可在通訊端閒置 2 分鐘後將其收回,但如有任何通訊端相關作業,通訊端有效時間會延長 2 分鐘。

  • 您無法在多個可用的通訊端之間進行 Select 作業,因為此作業須使用系統目前不支援的 java.nio.SocketChannel

    透過開發伺服器使用通訊端

    您可以在開發伺服器使用通訊端執行及測試程式碼,不必使用任何特殊指令列參數。

    使用通訊端的 App Engine 範例 (僅限 Java 7 執行階段)

    如需使用通訊端的示例,請參閱 Google Cloud Platform GitHub 中的通訊端示範應用程式

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Java 適用的 App Engine 標準環境