public CommunicatorCore(IChatForm form) { if (form == null) { throw new ArgumentNullException("form"); } fConnectionState = ConnectionState.Disconnected; fForm = form; fLogger = LogManager.GetLogger(ProtocolHelper.LOG_FILE, ProtocolHelper.LOG_LEVEL, "CommCore"); fPeers = new List <Peer>(); fProfile = new UserProfile(); fDatabase = new GKNetDatabase(); fDatabase.Connect(); fDatabase.LoadProfile(fProfile); fBlockchainNode = new BlockchainNode(this, fDatabase); fDataPlugins = new List <IDataPlugin>(); LoadPlugins(Utilities.GetAppPath()); Port = DHTClient.PublicDHTPort; fLogger.WriteInfo("Port: {0}", Port); try { fSTUNInfo = STUNUtility.Detect(Port); fPublicEndPoint = (fSTUNInfo.NetType != STUN_NetType.UdpBlocked) ? fSTUNInfo.PublicEndPoint : null; } catch (Exception ex) { fLogger.WriteError("DetectSTUN() error", ex); fPublicEndPoint = null; } if (UPnPEnabled) { CreatePortMapping(); } fDHTClient = new DHTClient(new IPEndPoint(DHTClient.IPAnyAddress, Port), this, ProtocolHelper.CLIENT_VER); fDHTClient.PublicEndPoint = fPublicEndPoint; fDHTClient.PeersFound += OnPeersFound; fDHTClient.PeerPinged += OnPeerPinged; fDHTClient.QueryReceived += OnQueryReceive; fDHTClient.ResponseReceived += OnResponseReceive; InitializePeers(); fTCPClient = new TCPDuplexClient(); fTCPClient.DataReceive += OnDataReceive; fTCPListenerPort = ProtocolHelper.PublicTCPPort; }
public void SetUp() { fDb = new GKNetDatabase(); Assert.IsNotNull(fDb); }