private void RunAsBoth() { // a node is like an erlang node. it is like a VM. like its own world using (var node = new TcpNode(18223)) using (var server = node.Listen(18222, serializer)) { // add actor, an actor is like an object. it can send & receive messages node.Add(new BandwidthActor()); node.Add(new EchoActor()); node.Add(new PingActor()); var mainDht = new DhtActor(); node.Add(mainDht); node.Add(new FileCopyActor()); for (int i = 0; i < 1000; i++) { var actor = new DhtActor("dht" + i); node.Add(actor); actor.Dht.Join(mainDht.Id); } var echo = node.New<IEcho>("System.Echo"); Console.WriteLine(echo.Echo("hey dude")); var dht = node.New<IDht>("dht1"); dht.Put("abc", "def"); Console.WriteLine("found " + dht.Get("abc")); var dht2 = node.New<IDht>("dht85"); int j=0; while (true) { var result = dht2.Get<string>("abc"); Console.WriteLine("result = " + result); if(result == "def") break; Console.WriteLine((++j) + " " + dht.Get("abc") ); Thread.Sleep(1000); } Console.WriteLine("def"); Console.WriteLine("press a key to quit"); Console.ReadKey(); } }
void RunAsServer() { // a node is like an erlang node. it is like a VM. like its own world using (var node = new TcpNode(18223, "server")) using(var server = node.Listen(18222, serializer, isLocalOnly: false)) { // add actor, an actor is like an object. it can send & receive messages node.AddBuiltins(); // node.Add(new DhtActor(ProxyFactory.New<IDhtBackend>())); //using (var cmd = new ConsoleProcessActor("cmd.exe", "cmd.exe")) //{ // node.Add(cmd); // while (cmd.IsAlive) // Thread.Sleep(10); //} Thread.Sleep(Timeout.Infinite); } }
void CreateNode(InputBox b) { var port = b.TextEntry.Text.Convert<int> (); var node = new TcpNode (port); node.Listen (port); }