0

同じLANに接続されていないが、erlangのgen_udp経由でインターネットにアクセスできるコンピューターのリスニングポートにudpパケットを送信しようとしています。

最初のノードを開始してポート ( {ok, Socket} = gen_udp:open(8887).) を開き、同じ方法で他のノードのポートを開きます。1 つのノードから別のノードにパケットを送信してgen_udp:sendも、何も受信しません (受信側で flush() を試行します)。ノード)、だから私は何か間違っているかどうか疑問に思っていますか? 、ファイアウォールとerlangとepmdが許可されていることを確認しました。

4

1 に答える 1

0

ソケットの制御プロセスを現在のプロセスとして設定してみました gen_udp:controlling_process(Socket,Pid)か?

次に、受信ループを設定する必要があります。そうすれば、メッセージが送信されます。メッセージの形式は次のようになります。{udp, Socket, IP, InPortNo, Packet}

inet:setopts(Socket, [{active, false}])ソケットを開いた後にを使用して、ソケットをパッシブモードに設定することもできます。その後、'gen_udp:recv/3`を使用してソケットから読み取ることができます。

于 2011-05-07T14:06:27.443 に答える