java - 在 Google Compute Engine 上接收 UDP 数据包

标签 java networking udp port google-compute-engine

我的任务是在 Google 计算引擎上接收 UDP 数据包。给定的是端口,即 300,我已经有一个简单的 Java 程序可以处理这些 UDP 数据包。

我现在的问题。将 UDP 数据包获取到我的 Java 程序。

为此我不知道该怎么做。 到目前为止我尝试过的是让Java程序直接监听端口,但没有成功。我怀疑来自GCE外部的流量必须路由到内部?

最佳答案

首先确保您已在 GCE 虚拟机实例的网络上添加防火墙规则,允许端口 300 上的 UDP 协议(protocol)传入流量。 您可以通过以下方式执行此操作:转到开发人员控制台,选择您的项目,然后计算 ->计算引擎 ->网络,单击右侧网络并验证防火墙规则(以及标签,如果您使用了它们)。如果未添加规则,则为流量添加规则。

“gcloud”是一个命令行工具,您也可以使用它来列出和验证您的防火墙规则[1]:
$ gcloud 计算防火墙规则列表

如果防火墙规则良好,则使用 netcat 等简单的故障排除工具来测试流量是否转发到您的虚拟机实例。

1. Listing Google Compute Engine firewall rules

关于java - 在 Google Compute Engine 上接收 UDP 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30485798/

相关文章:

java - 为什么Java中有多个垃圾收集器?

java - 使用带有 Java 的 JSON API 在 Google Cloud Storage 中插入对象(作为文件夹)

java - Java 中的 equals 字符串问题

networking - 如何在 net.Conn 上执行非阻塞写入?

python - 通过网络同时运行 python 脚本。这个可以吗?

java - 在 Java 中通过 UDP 发送 C++ 结构

tcp - 多人游戏开发中的 ZeroMQ

java - Android 避免键盘以编程方式覆盖编辑文本

java - C# 相当于 Java 的 DataOutputStream?

tcp - udp打洞后发送文件