質問

UbuntuマシンとWindows XPの2つのアーランノードを互いに通信させようとしています。

<!> quot; 許可されていないノードからの接続試行 <!> quot; 1つのノードが他のノードからメッセージを受信できないようにするメッセージ。

両方ともErlang OTPの5.XXXバージョンを使用しています。

両方のノードに同じCookie(.erlang.cookie)があります

受信ノードを開始するには:

erl -name fred@ipaddress

そしてその関数を 'fred @ ipaddress'で(一重引用符で)呼び出します

ファイアウォールをオフにしました。

では、他に何が接続を妨げているのでしょうか?

更新:erlang:get_cookie()を使用して両方のノードのCookieを確認していますが、値は異なります。これが問題です。両方のマシンでerlangを実行するディレクトリに同じ.erlang.cookieファイルを配置して、Cookieを設定していると考えています。しかし、おそらくこれは間違った場所ですか?

更新2:皆さんの回答に感謝します。 Ranok'sが答えとして選ばれました。 Cookieを設定する別の方法もいくつかあると思います。

役に立ちましたか?

解決

また、Erlangシステムを起動すると、コマンドラインフラグ-setcookieがあり、起動時にCookieを指定できます。

erl -name fred@ipaddress -setcookie FOOBAR

役立つこと、 ジェイコブ

他のヒント

各ノードのCookieを確認することから始めます。シェルから:

erlang:get_cookie().

同じでない場合は、ノードのCookieの1つを他のCookieと一致するように変更します。

erlang:set_cookie(node(), "newcookie").

すべてが機能する場合は、設定ファイルまたはコマンドライン引数からCookie設定が選択されない理由を確認する必要があります。

Erlang Cookieはユーザーディレクトリにある必要があります。アプリケーションディレクトリではありません。

だからあなたのものは次のようなものです:

C:\Documents and Settings\InterstarUser\.erlang.cookie

Windowsの日から正しく覚えていれば、コマンドラインのコマンドenvでHOMEの場所を確認できます。

net_adm:ping()

両方のノードからnet_adm:ping()を試してください。

http ://www.erlang.org/documentation/doc-5.4.13/lib/kernel-2.10.13/doc/html/net_adm.html

erlang:set_cookie(node(), 'newcookie').

ない

erlang:set_cookie(node(), "newcookie").

いくつかのことが思い浮かびます:

  1. 両方のノードでerlang:set_cookieを介してcookieを設定しようとしましたか?
  2. $ HOMEディレクトリに.erlang.cookieファイルが見つからない場合、ファイルが作成されます。 .erlang.cookieファイルの1つが1台のマシンの適切な場所にない可能性がありますか?ハードドライブでファイルを検索できますが、作成したもの以外のものを見つけた場合は、erlangがそこに置いて使用している可能性があります。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top