hand.cpp は明示的に接続先を指定している。これは nine core と似ている。
config1() と config2() は hand.cpp で定義されている。
bool config1(nine::system::SystemServer& sv)
{
const char* me = "1";
nine::system::LinkInfo link;
link.addNodeListen("0.0.0.0", 10001);
link.addNodeAccept(me, "2");
return sv.initialize(&link);
}
ここで行っていることは、"2" の接続を待ち受けるノード定義である。 addNodeListen() で汎用的な受け入れ口を用意し、addNodeAccept() で実際に接続を受け付ける相手を登録している。自分の名前は "1" である。
config2 は config1 のすぐ下に書かれている。
bool config2(nine::system::SystemServer& sv)
{
const char* me = "2";
nine::system::LinkInfo link;
link.addNodeConnect(me, "1", "127.0.0.1", 10001);
link.format(std::cout);
return sv.initialize(&link);
}
こちらは接続を行うノードの設定となっている。
config1() で待ち受けているポートへの connect を登録している。アドレスが 127.0.0.1 なので、config1 と同一マシン上で動かさないとならない。別マシンの場合は必要に応じてアドレスを変更すればよい。