繁体   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