示例#1
0
        public void Create_BadDevconDirectory_ExceptionThrown()
        {
            // Arrange

            // Create temporary directory (which obviously doesn't contain devcon.exe)
            string tempPath = Path.GetTempPath();
            string tempDir  = Path.Combine(tempPath, Guid.NewGuid().ToString());

            try
            {
                Directory.CreateDirectory(tempDir);
            }
            catch (Exception e)
            {
                throw new Exception("Could not prepare test. Failed to create temporary directory.", e);
            }
            // Tell DevconHelper to search in the temp dir
            string originalDevConDir = DevconHelper.DevconDirectory;

            DevconHelper.DevconDirectory = tempDir;


            // Act
            try
            {
                Loopback.Create();
            }
            finally
            {
                DevconHelper.DevconDirectory = originalDevConDir;
            }
        }
示例#2
0
    /*---------------LOOPBACK---------------*/
    public bool GetLoopPacket(NetSrc src, out IPEndPoint from, out MsgPacket msg)
    {
        from = new IPEndPoint(IPAddress.Loopback, 0);
        msg  = new MsgPacket();

        Loopback loop = loopbacks[(int)src];

        if (loop.send - loop.get > CConstVar.MAX_LOOPBACK)
        {
            loop.get = loop.send - CConstVar.MAX_LOOPBACK;
        }

        if (loop.get >= loop.send)
        {
            return(false);
        }

        int i = loop.get & (CConstVar.MAX_LOOPBACK - 1);

        loop.get++;
        Array.Copy(loop.msgs[i].data, msg.Data, loop.msgs[i].datalen);
        msg.CurSize = loop.msgs[i].datalen;

        from.Address = IPAddress.Loopback;
        return(true);
    }
示例#3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Setup: Removing all previous Loopback interfaces");
            Loopback.RemoveAll(onlyLoopbackNetIfaces: false);
            Console.WriteLine($"Done.");


            // 1. Manual creation and removal
            string loopbackName = "loopy";

            Console.WriteLine($"Creating Loopback named '{loopbackName}'");
            var loop1 = LoopbackNET.Loopback.Create(loopbackName);

            Console.WriteLine($"Done! New interface ID: {loop1.NetworkInterface.Id}");
            Console.WriteLine($"Removing Loopback named '{loopbackName}'");
            loop1.Remove();
            Console.WriteLine($"Done.");



            // 2. Creation and removal in a 'Using' scope
            using (LoopbackInterface loop2 = Loopback.Create())
            {
                Console.WriteLine($"Temporary loopback created. Name: '{loop2.NetworkInterface.Name}'");
                Console.WriteLine($"Disposing of temporary loopback.");
            } // Dispose removes the interface
            Console.WriteLine($"Done.");



            Console.WriteLine("Clean up: Making sure no Loopback interfaces are left behind");
            Loopback.RemoveAll(onlyLoopbackNetIfaces: false);
            Console.ReadLine();
        }
示例#4
0
    public override void Init()
    {
        instance = this;
        if (msgIDs == null)
        {
            msgIDs = new CMessageID();
        }
        sendStack   = new Stack <SendCallback>();
        msgBuilders = new List <FlatBufferBuilder>(builderLimit)
        {
        };
        for (int i = 0; i < builderLimit; i++)
        {
            msgBuilders.Add(new FlatBufferBuilder(32));
        }
        csocket = new CSocket();
        csocket.Init();
        //
        //udp相关
        updSocket = new CSocketUDP();
        updSocket.Init();
        updSocket.BeginReceive();

        //loopback
        loopbacks = new Loopback[2];

        //队列
        sendPacketQueue = new CircularBuffer <PacketQueue>(10);
        needUpdate      = true;

        CConstVar.ServerPort = updSocket.GetLocalPort();
        // HuffmanMsg.Init();
    }
示例#5
0
 public void SelectTransport(string Name)
 {
     if (Name != this.Transport.GetType().Name)
     {
         this.Transport = ProviderInstanceControl.GetProviderInstance <ITransport>(Name) as ITransport;
     }
     if (Transport == null)
     {
         Transport = new Loopback();
     }
 }
示例#6
0
        public bool Start(TunnelSettings settings)
        {
            Connection <MonoBrick.NXT.Command, MonoBrick.NXT.Reply> connection = null;

            switch (settings.Connection.ToLower())
            {
            case  "usb":
                connection = new USB <MonoBrick.NXT.Command, MonoBrick.NXT.Reply>();
                break;

            case "loopback":
                connection = new Loopback <MonoBrick.NXT.Command, MonoBrick.NXT.Reply>();
                break;

            default:
                connection = new Bluetooth <MonoBrick.NXT.Command, MonoBrick.NXT.Reply>(settings.Connection);
                break;
            }
            return(Start(settings, connection));
        }
示例#7
0
 public static UnserializableObject Create()
 => new UnserializableObject(Loopback.GetAddressBytes());
示例#8
0
 public void RemoveCreatedLoopbacks()
 {
     // We need this to run after every test especially to not leave behind
     // the last test's interfaces still in the system
     Loopback.RemoveAll();
 }
示例#9
0
 public void RemovePreviousLoopbacks()
 {
     // We need this to run before every test because user might have defined
     // loopbacks outside our testing session
     Loopback.RemoveAll();
 }