Networking 在erlang中通过UDP发送数据包

Networking 在erlang中通过UDP发送数据包,networking,erlang,erlang-ports,Networking,Erlang,Erlang Ports,因此,我尝试将udp数据包发送到一台计算机上的侦听端口,该计算机没有连接到同一个LAN,但可以通过erlang中的gen_udp访问internet 我通过打开端口来启动第一个节点 ({ok,Socket}=gen_udp:open(8887)。)并以相同的方式打开另一个节点上的端口,当我通过gen_udp:send将数据包从一个节点发送到另一个节点时,我没有收到任何东西(在接收节点上尝试flush()),因此我想知道是否有什么我做错了,我检查了防火墙,允许使用erlang和epmd。是否尝试通

因此,我尝试将udp数据包发送到一台计算机上的侦听端口,该计算机没有连接到同一个LAN,但可以通过erlang中的gen_udp访问internet

我通过打开端口来启动第一个节点
{ok,Socket}=gen_udp:open(8887)。
)并以相同的方式打开另一个节点上的端口,当我通过
gen_udp:send将数据包从一个节点发送到另一个节点时,我没有收到任何东西(在接收节点上尝试flush()),因此我想知道是否有什么我做错了,我检查了防火墙,允许使用erlang和epmd。

是否尝试通过以下方式将套接字的控制进程设置为当前进程:
gen\u udp:控制进程(套接字、Pid)

然后,您应该设置一个接收循环,消息将发送给您。消息的格式应为:
{udp,Socket,IP,InPortNo,Packet}


您还可以尝试在打开套接字后使用
inet:setopts(socket,[{active,false}])
将其设置为被动模式。之后,您可以使用“gen_udp:recv/3”从套接字读取数据。

您的接收节点也是erlang节点吗?我建议使用或类似工具查看数据包是否离开发送计算机并到达目标计算机。提示:thx:),是的,我注意到我的路由器出了问题,因为我在wireshark上得到了路由器的本地ip地址(我得到了一个与我的路由器相关的ip地址)作为我的来源,我尝试断开它的连接,只需将我的以太网电缆直接从我的宽带插入我的计算机,它就工作了,我可以进一步研究它。thx的回复,控制_进程对我不起作用,我不知道是什么原因导致了问题,因为进程应该侦听该端口,我还尝试了inet:i()以查看其设置和状态是否已绑定。@Krewie:那么gen_udp:recv需要什么?