public void TestRepubNodes() { using (var loggerFactory = LoggerFactory.Create(builder => builder.SetMinimumLevel(LogLevel.Trace).AddFile("Logs/{Date}.txt", LogLevel.Trace))) { var l = loggerFactory.CreateLogger <LocalServiceTest>(); var t = DateTime.Now; var ran = new Random(); int nport1 = ran.Next(1000, 10000); int nport2 = ran.Next(1000, 10000); l.LogInformation($"port 1 is {nport1} port 2 is {nport2}"); var inf1 = new HostPlatformInfo(); using (var srv1 = new PCLocalService(inf1, loggerFactory, Getfs(inf1.GetConfigFolder()), null)) { srv1.TestSetReannounceTime(1000); srv1.TestSetUdpPort(nport1, new[] { nport2, nport1 }); srv1.StartService(); var pc1 = srv1.CreatePersonalCloud("test", "test1"); var ret = srv1.SharePersonalCloud(pc1); Thread.Sleep(1000); var inf2 = new HostPlatformInfo(); using (var srv2 = new PCLocalService(inf2, loggerFactory, Getfs(inf2.GetConfigFolder()), null)) { srv2.TestSetReannounceTime(3 * 1000); srv2.TestSetUdpPort(nport2, new[] { nport2, nport1 }); l.LogInformation($"before srv2.StartService(),port {srv2.ServerPort}"); srv2.StartService(); //l.LogInformation((DateTime.Now - t).TotalSeconds.ToString()); Thread.Sleep(1000); l.LogInformation("before srv2.JoinPersonalCloud();"); var pc2 = srv2.JoinPersonalCloud(int.Parse(ret, CultureInfo.InvariantCulture), "test2").Result; Thread.Sleep(1000); SimpleShareCheckContent(pc2, 2, 2); SimpleShareCheckContent(pc1, 2, 2); Thread.Sleep(10000); SimpleShareCheckContent(pc2, 2, 2); SimpleShareCheckContent(pc1, 2, 2); SimpleShareCheckContent(pc2, 2, 2); SimpleShareCheckContent(pc1, 2, 2); srv2.Dispose(); Thread.Sleep(20000); _ = pc1.RootFS.EnumerateChildrenAsync("/").AsTask().Result; Thread.Sleep(1000); SimpleShareCheckContent(pc1, 2, 1); } } } }