這是 Sockets API 的測試版。此 API 不在任何服務水準協議或廢止政策的適用範圍內,而且可能有某些變更不具有回溯相容性。
重要事項:Java 8 執行階段中的應用程式可以使用原生 Java 通訊端,而沒有任何限制,包括使用 NIO 類別及其方法。在 Java 7 執行階段中執行的應用程式受到本頁所述的通訊端限制的約束。
通訊端僅適用於付費應用程式,且來自通訊端的流量是依連出頻寬計費。通訊端也有每日和每分鐘 (爆發) 配額的限制。
Java 7 執行階段支援使用 java.net.Socket 和 java.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.URL
和java.net.HttpURLConnection
會依預設使用 Java 原生通訊端。 - InetAddress.isReachable 免人工管理。
- 支援
javax.net.ssl
中的多數類別。 - 您只能使用 TCP 或 UDP,不能使用任意通訊協定。
- 您無法繫結至特定 IP 位址或通訊埠。
- 通訊埠 25 (SMTP) 已遭封鎖,但您仍可在提交通訊埠 587 中使用已驗證的 SMTP。
私人、廣播、多點傳送和 Google IP 範圍已遭封鎖,但下面這些已加入許可清單的項目除外:
- Google 公用 DNS:
8.8.8.8
、8.8.4.4
、2001:4860:4860::8888
、2001:4860:4860::8844
通訊埠 53 - Gmail SMTPS:
smtp.gmail.com
通訊埠 465 和 587 - Gmail POP3S:
pop.gmail.com
通訊埠 995 - Gmail IMAPS:
imap.gmail.com
通訊埠 993
- Google 公用 DNS:
通訊端描述元與建立該描述元的 App Engine 應用程式相關,且無法轉移 (無法由其他應用程式使用)。
系統可在通訊端閒置 2 分鐘後將其收回,但如有任何通訊端相關作業,通訊端有效時間會延長 2 分鐘。
您無法在多個可用的通訊端之間進行
Select
作業,因為此作業須使用系統目前不支援的java.nio.SocketChannel
。透過開發伺服器使用通訊端
您可以在開發伺服器使用通訊端執行及測試程式碼,不必使用任何特殊指令列參數。
使用通訊端的 App Engine 範例 (僅限 Java 7 執行階段)
如需使用通訊端的示例,請參閱 Google Cloud Platform GitHub 中的通訊端示範應用程式。