public CPeers(int NumConnections, int Reserved) { mPeers = new CPeer[NumConnections]; mNumReserved = Reserved; instance = this; }
private bool IsStopped = false; //set true per spegnere il server private CServer(List <CPeer> Peers) { rsaKeyPair = new RSACryptoServiceProvider(); // crea oggetto CSP per generare o caricare il keypair if (File.Exists("keystore.xml")) // Se il file di keystore esiste viene caricato in memoria { rsaKeyPair = new RSACryptoServiceProvider(); string xmlString = rsaKeyPair.ToXmlString(true); File.WriteAllText("keystore.xml", xmlString); } else//se il file non esiste ne viene generato uno { rsaKeyPair = RSA.GenRSAKey(); string xmlString = rsaKeyPair.ToXmlString(true); File.WriteAllText("keystore.xml", xmlString); } mLastBlockNumber = CBlockChain.Instance.LastBlock.BlockNumber; if (Program.DEBUG) { CIO.DebugOut("Last block number: " + mLastBlockNumber + "."); } if (Program.DEBUG) { CIO.DebugOut("Inizialize mPeers..."); } mPeers = new CPeers(MAX_PEERS, RESERVED_CONNECTION); if (Program.DEBUG) { CIO.DebugOut("Inizialie the Listener..."); } //crea un socket che attende connessioni in ingresso di peer che vogliono collegarsi, in ascolto sulla porta DEFOULT_PORT IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, DEFOULT_PORT); mListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); mListener.Bind(localEndPoint); mListener.Listen(DEFOULT_PORT); if (Program.DEBUG) { CIO.DebugOut("Finish inizializing!"); } Start(Peers); }