public RemotingTester(int p, NetworkConfiguration nc, StreamWriter fs) { int desired_port = p; _port = (short)p; _sw = fs; Console.WriteLine("Z {0}",_port); int local_host_index = nc.GetLocalHostIndex(desired_port); NodeConfiguration this_node_configuration = (NodeConfiguration)nc.Nodes[local_host_index]; Console.WriteLine("A"); TransportAddressConfiguration local_ta_configuration = (TransportAddressConfiguration)this_node_configuration.TransportAddresses[0]; Console.WriteLine("B"); short this_port = local_ta_configuration.Port; SHA1 sha = new SHA1CryptoServiceProvider(); String local_ta = local_ta_configuration.GetTransportAddressURI(); //We take the local transport address plus the port number to be hashed to obtain a random AHAddress byte[] hashedbytes = sha.ComputeHash(Encoding.UTF8.GetBytes(local_ta + desired_port)); //inforce type 0 hashedbytes[Address.MemSize - 1] &= 0xFE; AHAddress _local_ahaddress = new AHAddress(hashedbytes); Node this_node = new HybridNode( _local_ahaddress ); //Node this_node = new StructuredNode( _local_ahaddress ); node = this_node; if ( local_ta_configuration.Protocol == "tcp" ) { node.AddEdgeListener( new TcpEdgeListener(this_port) ); } else if( local_ta_configuration.Protocol == "udp" ) { node.AddEdgeListener( new UdpEdgeListener(this_port) ); } Console.WriteLine("C"); int remote_node_index = local_host_index-1; int num_remote_ta = 150; //20 nodes on the list to try to bootstrap to if (local_host_index!=0) { Console.WriteLine("C--"); NodeConfiguration remote_node_configuration = (NodeConfiguration)nc.Nodes[0]; Console.WriteLine("C++"); TransportAddressConfiguration remote_ta_configuration = (TransportAddressConfiguration)remote_node_configuration.TransportAddresses[0]; Console.WriteLine("D"); String remote_ta = remote_ta_configuration.GetTransportAddressURI(); node.RemoteTAs.Add( new TransportAddress( remote_ta ) ); } while ( (remote_node_index>=0) && (num_remote_ta>=0) ) { NodeConfiguration remote_node_configuration = (NodeConfiguration)nc.Nodes[remote_node_index]; Console.WriteLine("E"); TransportAddressConfiguration remote_ta_configuration = (TransportAddressConfiguration)remote_node_configuration.TransportAddresses[0]; String remote_ta = remote_ta_configuration.GetTransportAddressURI(); node.RemoteTAs.Add( new TransportAddress( remote_ta ) ); //System.Console.WriteLine("Adding {0}", remote_ta); remote_node_index--; num_remote_ta--; } bool net_stream = false; String server_ipadd = "cantor.ee.ucla.edu"; int server_port = 8002; int time_diff = 0; String td_file_string = "~/joe/time_diff.txt"; if(File.Exists(td_file_string)){ StreamReader sr = new StreamReader(td_file_string); time_diff = Convert.ToInt32( sr.ReadLine() ); sr.Close(); } //String file_string = "./data/brunetadd" + Convert.ToString(desired_port) + ".log"; fs.WriteLine( "local_address " + node.Address.ToBigInteger().ToString() + " " + Dns.GetHostName() + ":" + desired_port); fs.Write( DateTime.Now.ToUniversalTime().ToString("MM'/'dd'/'yyyy' 'HH':'mm':'ss") + ":" + DateTime.Now.ToUniversalTime().Millisecond + " Start Start " + node.Address.ToBigInteger().ToString() + '\n'); fs.Flush(); #if PLAB_LOG BrunetLogger bl = new BrunetLogger(desired_port, (AHAddress)node.Address, net_stream, server_ipadd, server_port, time_diff, fs); node.Logger = bl; #endif //bool log_rdp = false; #if PACKET_LOG String file_packet = "./data/packet" + Convert.ToString(desired_port) + ".log"; StreamWriter packet_sw = new StreamWriter(file_packet, false); packet_sw.WriteLine("Local_node: {0}:{1} start_time_GMT: {2}:{3} local_address {4}", Dns.GetHostName(), desired_port, DateTime.Now.ToUniversalTime().ToString("MM'/'dd'/'yyyy' 'HH':'mm':'ss"), DateTime.Now.ToUniversalTime().Millisecond, node.Address.ToBigInteger().ToString() ); packet_sw.Close(); #endif }
public BrunetTester(int p, NetworkConfiguration nc, StreamWriter fs) { int desired_port = p; _port = (short)p; _sw = fs; int local_host_index = nc.GetLocalHostIndex(desired_port); NodeConfiguration this_node_configuration = (NodeConfiguration)nc.Nodes[local_host_index]; TransportAddressConfiguration local_ta_configuration = (TransportAddressConfiguration)this_node_configuration.TransportAddresses[0]; short this_port = local_ta_configuration.Port; SHA1 sha = new SHA1CryptoServiceProvider(); String local_ta = local_ta_configuration.GetTransportAddressURI(); //We take the local transport address plus the port number to be hashed to obtain a random AHAddress byte[] hashedbytes = sha.ComputeHash(Encoding.UTF8.GetBytes(local_ta + desired_port)); //inforce type 0 hashedbytes[Address.MemSize - 1] &= 0xFE; AHAddress _local_ahaddress = new AHAddress(hashedbytes); //Node this_node = new HybridNode( _local_ahaddress ); Node this_node = new StructuredNode( _local_ahaddress ); node = this_node; if ( local_ta_configuration.Protocol == "tcp" ) { node.AddEdgeListener( new TcpEdgeListener(this_port) ); } else if( local_ta_configuration.Protocol == "udp" ) { node.AddEdgeListener( new UdpEdgeListener(this_port) ); } int remote_node_index = local_host_index-1; int num_remote_ta = 150; //20 nodes on the list to try to bootstrap to if (local_host_index!=0) { NodeConfiguration remote_node_configuration = (NodeConfiguration)nc.Nodes[0]; TransportAddressConfiguration remote_ta_configuration = (TransportAddressConfiguration)remote_node_configuration.TransportAddresses[0]; String remote_ta = remote_ta_configuration.GetTransportAddressURI(); node.RemoteTAs.Add( TransportAddressFactory.CreateInstance( remote_ta ) ); } while ( (remote_node_index>=0) && (num_remote_ta>=0) ) { NodeConfiguration remote_node_configuration = (NodeConfiguration)nc.Nodes[remote_node_index]; TransportAddressConfiguration remote_ta_configuration = (TransportAddressConfiguration)remote_node_configuration.TransportAddresses[0]; String remote_ta = remote_ta_configuration.GetTransportAddressURI(); node.RemoteTAs.Add( TransportAddressFactory.CreateInstance( remote_ta ) ); //System.Console.WriteLine("Adding {0}", remote_ta); remote_node_index--; num_remote_ta--; } //String file_string = "./data/brunetadd" + Convert.ToString(desired_port) + ".log"; fs.WriteLine( "local_address " + node.Address.ToBigInteger().ToString() + " " + Dns.GetHostName() + ":" + desired_port); fs.Write( DateTime.Now.ToUniversalTime().ToString("MM'/'dd'/'yyyy' 'HH':'mm':'ss") + ":" + DateTime.Now.ToUniversalTime().Millisecond + " Start Start " + node.Address.ToBigInteger().ToString() + '\n'); fs.Flush(); //bool log_rdp = false; #if PACKET_LOG String file_packet = "./data/packet" + Convert.ToString(desired_port) + ".log"; StreamWriter packet_sw = new StreamWriter(file_packet, false); packet_sw.WriteLine("Local_node: {0}:{1} start_time_GMT: {2}:{3} local_address {4}", Dns.GetHostName(), desired_port, DateTime.Now.ToUniversalTime().ToString("MM'/'dd'/'yyyy' 'HH':'mm':'ss"), DateTime.Now.ToUniversalTime().Millisecond, node.Address.ToBigInteger().ToString() ); packet_sw.Close(); #endif }