Google计算引擎连接到本地UDP端口

Google计算引擎连接到本地UDP端口,udp,google-compute-engine,ipc,firewall,Udp,Google Compute Engine,Ipc,Firewall,我有一个服务器在谷歌计算引擎上监听UDP端口22000 我可以从互联网连接,任何机器都没有问题,但我不能从本地机器连接 完全相同的代码通常在任何其他非google Linux机器上运行 我对默认计算引擎设置的唯一更改是添加防火墙规则,允许在端口22000处传入UDP 欢迎任何帮助 詹姆解决了 显然,在这些机器/内核中,UDP套接字在发送之前需要有一个名称绑定——在我安装服务器的其他机器中,这是不需要的 因此,按照顺序: 插座 设置超时。。 setsockname。。 socksendto。。 s

我有一个服务器在谷歌计算引擎上监听UDP端口22000

我可以从互联网连接,任何机器都没有问题,但我不能从本地机器连接

完全相同的代码通常在任何其他非google Linux机器上运行

我对默认计算引擎设置的唯一更改是添加防火墙规则,允许在端口22000处传入UDP

欢迎任何帮助

詹姆

解决了

显然,在这些机器/内核中,UDP套接字在发送之前需要有一个名称绑定——在我安装服务器的其他机器中,这是不需要的

因此,按照顺序:

插座 设置超时。。 setsockname。。 socksendto。。 sockrecvfrom

。。。根据Lua套接字文档,我一直避免使用setsockname:

注意:此方法只能在任何数据报之前调用 通过UDP对象发送,并且仅发送一次。否则,系统 自动将对象绑定到所有本地接口并选择 第一个数据报发送后的临时端口。在当地 地址由系统自动设置,或由 setsockname,无法更改

。。。发送时是第一次操作

出于某种原因,这里需要它。具体来说,我:


setsockname'*',0-也就是说,绑定到所有本地地址,使用临时端口。

绑定到哪个IP地址?您使用的是0.0.0.0还是网络接口的地址?不是真正的绑定,而是设置sockname,因为它是UDP。我尝试了0.0.0.0、127.0.0.1、localhost和内部IP。