簡體   English   中英

在Google Compute Engine上接收UDP數據包

[英]Receive UDP Packets on Google Compute Engine

我的任務是在Google Compute Engine上接收UDP數據包。 給定的端口是300,我已經有一個簡單的Java程序可以處理這些UDP數據包。

我的問題了。 獲取UDP數據包到我的Java程序。

為此,我不知道該怎么做。 到目前為止,我一直在嘗試讓Java程序直接監聽端口,但該端口無效。 我懷疑來自GCE外部的流量必須路由到內部嗎?

首先,請確保已在GCE VM實例的網絡上添加了防火牆規則,該規則允許端口300上的UDP協議傳入流量。您可以通過以下步驟進行操作:轉到開發者控制台,選擇您的項目,然后選擇Compute-> Compute Engine->網絡,單擊正確的網絡並驗證防火牆規則(以及使用的標簽,以及標簽)。 如果未添加規則,則為流量添加規則。

“ gcloud”是一個命令行工具,您也可以使用它來列出和驗證您的防火牆規則[1]:
$ gcloud計算防火牆規則列表

如果防火牆規則很好,請使用簡單的故障排除工具(如netcat)來測試是否將流量轉發到您的VM實例。

1.列出Google Compute Engine防火牆規則

我建議不要使用Java處理UDP。 我經歷了莫名其妙的短時間,所有到達的UDP流量都丟失了。 這是由垃圾收集引起的。

對我有用的體系結構是將GCE VM與C ++應用程序一起使用,以接收UDP數據,然后使用libCURL,將數據轉換為HTTP,然后將其分發給Google App Engine進行處理。 為了使UDP接收器具有可伸縮性和容錯性,請使用網絡平衡和偵聽UDP的多個VM。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM