void resolver_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { PeerNameRecord peer = e.PeerNameRecord; foreach (IPEndPoint ep in peer.EndPointCollection) { if (ep.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { try { string endpointUrl = string.Format("net.tcp://{0}:{1}/P2PService", ep.Address, ep.Port); NetTcpBinding binding = new NetTcpBinding(); binding.Security.Mode = SecurityMode.None; IP2PService serviceProxy = ChannelFactory <IP2PService> .CreateChannel( binding, new EndpointAddress(endpointUrl)); PeerList.Add( new PeerEntry { PeerName = peer.PeerName, ServiceProxy = serviceProxy, DisplayString = serviceProxy.GetName(), State = PeerState.User, Player = serviceProxy.GetPlayer(), PlayerId = serviceProxy.GetPlayerId() }); ResolveProgressChanged(); } catch (EndpointNotFoundException) { } } } }
/// <summary> /// Обрабработка найденного объекта /// </summary> private void resolver_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { var peer = e.PeerNameRecord; foreach (IPEndPoint ep in peer.EndPointCollection) { if (ep.Address.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork) { continue; } try { var endpointUrl = string.Format("net.tcp://{0}:{1}/ContentReceiver", ep.Address, ep.Port); var binding = new NetTcpBinding { Security = { Mode = SecurityMode.None } }; var contentReceiver = ChannelFactory <IContentReceiver> .CreateChannel( binding, new EndpointAddress(endpointUrl)); _peerList.Add(new Peer { PeerName = peer.PeerName, ContentReceiver = contentReceiver, ReceiverName = contentReceiver.GetName() }); } catch (EndpointNotFoundException ex) { log.Warn(ex, "Ошибка во время обновления пиров. Неизвестный пир"); } } }
private void resolver_ResolverProgressChanged(object sender, ResolveProgressChangedEventArgs e) { PeerNameRecord peer = e.PeerNameRecord;//taking link for record with peer name that was detected var endPointCollection = peer.EndPointCollection; foreach (IPEndPoint endPoint in endPointCollection) { if (endPoint.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { try { string endPointUrl = string.Format($"net.tcp://{endPoint.Address}:{endPoint.Port}/P2PService"); NetTcpBinding binding = new NetTcpBinding(); binding.Security.Mode = SecurityMode.None; IP2PService serviceProxy = ChannelFactory <IP2PService> .CreateChannel(binding, new EndpointAddress(endPointUrl)); peerList.Add(new PeerEntry { PeerName = peer.PeerName, ServiceProxy = serviceProxy, DisplayString = serviceProxy.GetName() }); } catch (Exception exception) { } } } }
public void resolver_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { PeerNameRecord peer = e.PeerNameRecord; foreach (IPEndPoint ep in peer.EndPointCollection) { //if (ep.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) if (ep.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6) { try { string endpointUrl = string.Format(endpointuriformat, ep.Address, ep.Port); NetTcpBinding binding = new NetTcpBinding(); //binding.Security.Mode = SecurityMode.None; binding.Security.Mode = SecurityMode.None; ///// ///// // Stream add //// //// binding.TransferMode = TransferMode.Streamed; binding.MaxReceivedMessageSize = 20134217728; // 20 GB binding.MaxBufferPoolSize = 1024 * 1024; // 1 MB //// //// //// //// IP2PService serviceProxy = ChannelFactory <IP2PService> .CreateChannel( binding, new EndpointAddress(endpointUrl)); PeerEntry entry = new PeerEntry { PeerName = peer.PeerName, ServiceProxy = serviceProxy, DisplayString = serviceProxy.GetName(), }; //Vault.Peers.Add(peer); Logger.Log.Info(endpointUrl); Logger.Log.Info(entry.PeerName); Logger.Log.Info(entry.Comment); Logger.Log.Info("\t Endpoint:{0}", ep); Vault.Peers.Add(entry); } catch (EndpointNotFoundException) { //Vault.Peers.Add( // new PeerEntry // { // PeerName = peer.PeerName, // DisplayString = "Unknown Peer", // }); } } } }
// 自訂非同步解析作業正在執行中,所呼叫的方法 private void ResolveProgressChangedCallback(object sender, ResolveProgressChangedEventArgs e) { // 取得非同步作業的進度百分比 // 並藉此改變ProgressBar物件的顯示進度 progressBar.Value = e.ProgressPercentage; // 取得PNRP Peer Name記錄物件 PeerNameRecord pnr = e.PeerNameRecord; foreach (IPEndPoint endpoint in pnr.EndPointCollection) { lstPeerNameRecord.Items.Add(endpoint); } }
void resolver_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { // Get peer record from event args PeerNameRecord peer = e.PeerNameRecord; // Examine endpoints for peer peer.EndPointCollection.Where(ep => ep.Address.AddressFamily == AddressFamily.InterNetwork) .AsParallel().ForAll(ep => { try { // Get service reference string endpointUrl = string.Format("net.tcp://{0}:{1}/P2PService", ep.Address, ep.Port); var binding = new NetTcpBinding(); binding.Security.Mode = SecurityMode.None; IP2PService serviceProxy = ChannelFactory <IP2PService> .CreateChannel(binding, new EndpointAddress(endpointUrl)); lock (peersLock) { peerList.Add( new PeerEntry { PeerName = peer.PeerName, ServiceProxy = serviceProxy, DisplayString = serviceProxy.GetName(), ButtonsEnabled = true } ); } } catch (EndpointNotFoundException) { // Add client but not extra info. lock (peersLock) { peerList.Add( new PeerEntry { PeerName = peer.PeerName, DisplayString = "Unknown peer", ButtonsEnabled = false } ); } } }); }
private void Resolver_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { PeerNameRecord peer = e.PeerNameRecord; peer.EndPointCollection.Where(point => point.Address.AddressFamily == AddressFamily.InterNetwork) .AsParallel() .ForAll( point => { try { string endpointUrl = string.Format("net.tcp://{0}:{1}/PeerToPeerService", point.Address, point.Port); var binding = new NetTcpBinding { Security = { Mode = SecurityMode.None } }; IPeerToPeerService serviceProxy = ChannelFactory <IPeerToPeerService> .CreateChannel(binding, new EndpointAddress(endpointUrl)); lock (_peersLock) { _peerList.Add(new PeerEntry { PeerName = peer.PeerName, ServiceProxy = serviceProxy, DisplayString = serviceProxy.GetName(), ButtonsEnabled = true }); } } catch (EndpointNotFoundException) { lock (_peersLock) { _peerList.Add(new PeerEntry { PeerName = peer.PeerName, DisplayString = "Unknown peer", ButtonsEnabled = false }); } } }); }
void resolver_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { PeerNameRecord peer = e.PeerNameRecord; foreach (IPEndPoint ep in peer.EndPointCollection) { if (ep.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { try { string endpointUrl = string.Format("net.tcp://{0}:{1}/P2PService", ep.Address, ep.Port); NetTcpBinding binding = new NetTcpBinding(); binding.Security.Mode = SecurityMode.None; IP2PService serviceProxy = ChannelFactory <IP2PService> .CreateChannel( binding, new EndpointAddress(endpointUrl)); peerList.Add( new PeerEntry { PeerName = peer.PeerName, ServiceProxy = serviceProxy, DisplayString = serviceProxy.GetName() }); Console.WriteLine("Peer {0} is found", peer.PeerName); } catch (EndpointNotFoundException) { //peerList.Add( // new PeerEntry // { // PeerName = peer.PeerName, // DisplayString = "Unknown type" // }); Console.WriteLine("Peer {0} of unknown type is found", peer.PeerName); } } } if (peerList.Count > 0) { PeersAreFound?.Invoke(this, EventArgs.Empty); } }
private void ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { var peer = e.PeerNameRecord; foreach (var ep in peer.EndPointCollection) { if (ep.Address.AddressFamily != AddressFamily.InterNetworkV6) { continue; } try { string endpointUrl = $"net.tcp://[{ep.Address}]:{ep.Port}/P2PService"; var binding = new NetTcpBinding { Security = { Mode = SecurityMode.Transport } }; var serviceProxy = ChannelFactory <IP2PService> .CreateChannel( binding, new EndpointAddress(endpointUrl)); _home.ListPeerEntryAdd( new PeerEntry { PeerName = peer.PeerName, ServiceProxy = serviceProxy, DisplayString = serviceProxy.GetName(), ButtonsEnabled = true }); } catch (EndpointNotFoundException) { _home.ListPeerEntryAdd( new PeerEntry { PeerName = peer.PeerName, DisplayString = "Неизвестный пир", ButtonsEnabled = false }); } } }
void resolver_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { PeerNameRecord peer = e.PeerNameRecord; foreach (IPEndPoint ep in peer.EndPointCollection) { if (ep.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { try { string endpointUrl = string.Format($"net.tcp://{ep.Address}:{ep.Port}/P2PService"); NetTcpBinding binding = new NetTcpBinding { Security = { Mode = SecurityMode.None } }; IP2PService serviceProxy = ChannelFactory <IP2PService> .CreateChannel( binding, new EndpointAddress(endpointUrl)); PeerList.Items.Add( new PeerEntry { PeerName = peer.PeerName, ServiceProxy = serviceProxy, DisplayString = serviceProxy.GetName(), ButtonsEnabled = true }); } catch (EndpointNotFoundException) { PeerList.Items.Add( new PeerEntry { PeerName = peer.PeerName, DisplayString = "Unknown peer", ButtonsEnabled = false }); } } } }
private void OnPeerResolverFound(object sender, ResolveProgressChangedEventArgs e) { var peer = e.PeerNameRecord; foreach (var ep in peer.EndPointCollection) { if (ep.AddressFamily == AddressFamily.InterNetwork) { var remoteUrl = string.Format("net.tcp://{0}:{1}/P2PService", ep.Address, ep.Port); var binding = new NetTcpBinding(); binding.Security.Mode = SecurityMode.None; try { var peerContext = AvailablePeers.FirstOrDefault(x => x.PeerEntry.Address == remoteUrl); if (peerContext == null) { IP2PService remoteService = ChannelFactory <IP2PService> .CreateChannel( binding, new EndpointAddress(remoteUrl)); var peerEntry = new PeerEntry(remoteService, remoteUrl); _foundPeers.Add(peerEntry); _logger.Debug($"New peer found: {peerEntry}"); } else { _foundPeers.Add(peerContext.PeerEntry); } } catch (Exception ex) when(ex is InvalidOperationException || ex is CommunicationException) { _logger.Error(ex, "Cannot process new peer: {0}", ex.Message); } } } }
private void Pnr_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { ProgressChanged?.Invoke(e.UserState as ResolveToken, e.ProgressPercentage, new PeerNodeData <T>(e.PeerNameRecord)); }
void resolver_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { Debug.WriteLine("Progress: " + e.PeerNameRecord.PeerName); this.IsReady = false; }
static void resolver_ResolveProgressChanged(object sender, ResolveProgressChangedEventArgs e) { Console.Write("\r{0} Resolution Progress: {1}", e.PeerNameRecord.PeerName, e.ProgressPercentage); }