Exemplo n.º 1
0
        public override ResolveResponseInfo Resolve(ResolveInfo resolveInfo)
        {
            ResolveResponseInfo rri = new ResolveResponseInfo();

            if (ControlShape)
            {
                lock (mesh_lock)
                {
                    if (nodes_count == 0)
                    {
                        rri.Addresses = new PeerNodeAddress [0];
                    }
                    else if (unique_node != null)
                    {
                        Node n = unique_node;
                        rri.Addresses = new PeerNodeAddress [] { n.Address };
                    }

                    Console.WriteLine("Resolve: {0}", resolveInfo.MeshId);
                }
            }
            else
            {
                rri = base.Resolve(resolveInfo);
            }

            return(rri);
        }
        public void ResolveResponseInfo()
        {
            var ser = new DataContractSerializer(typeof(ResolveResponseInfo));
            var rri = new ResolveResponseInfo();
            var pna = new PeerNodeAddress(
                new EndpointAddress("http://localhost:8080"),
                new ReadOnlyCollection <IPAddress> (new IPAddress [0]));

            rri.Addresses = new List <PeerNodeAddress> ();
            rri.Addresses.Add(pna);
            var sw = new StringWriter();

            using (var xw = XmlWriter.Create(sw))
                ser.WriteObject(xw, rri);
            rri = (ResolveResponseInfo)ser.ReadObject(XmlReader.Create(new StringReader(sw.ToString())));
        }
Exemplo n.º 3
0
        public static void Main()
        {
            BasicHttpBinding binding = new BasicHttpBinding();
            EndpointAddress  ea      = new EndpointAddress(
                new Uri("http://localhost:8080/ChatServer"));
            IPeerResolverContract proxy = ChannelFactory <IPeerResolverContract> .CreateChannel(binding, ea);

            try {
                Guid guid = Guid.NewGuid();
                Console.WriteLine(guid);
                ResolveInfo ri = new ResolveInfo(
                    guid, "net.p2p://chatMesh/ChatServer", 1);
                ResolveResponseInfo rri = proxy.Resolve(ri);
                Console.WriteLine("Response: {0}", rri);
            }
            catch (Exception e) {
                Console.WriteLine(e.Message);
            }
        }