Example #1
0
        static void Main(string[] args)
        {
            using (var dnsServer = new DnsServer(IPAddress.Any, 10, 10))
            {
                DNSEncoder.Init();
                var client     = new QuicClient();
                var connection = client.Connect("127.0.0.1", 11000);
                var stream     = connection.CreateStream(QuickNet.Utilities.StreamType.ClientBidirectional);
                async Task OnDnsServerOnQueryReceived(object sender, QueryReceivedEventArgs e)
                {
                    if (!(e.Query is DnsMessage query))
                    {
                        return;
                    }
                    await Task.Run(() =>
                    {
                        stream.Send(DNSEncoder.Encode(query));
                        e.Response = DnsMessage.Parse(stream.Receive());
                    });
                }

                dnsServer.QueryReceived += OnDnsServerOnQueryReceived;
                dnsServer.Start();
                Console.WriteLine(@"-------ARASHI Q DNS------");
                Console.WriteLine(@"-------DOTNET ALPHA------");

                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine(@"ArashiDNS Server Running");

                Console.WriteLine(@"Press any key to stop dns server");
                Console.WriteLine("------------------------");
                Console.ReadLine();
                Console.WriteLine("------------------------");
            }
        }
Example #2
0
        public void Start()
        {
            _client = new QuicClient();

            try
            {
                _client.Connect("127.0.0.1", 8880);

                _stream = _client.CreateStream();
                Thread t = new Thread(new ThreadStart(ReceiveMessage));

                t.Start();

                while (true)
                {
                    Console.Write("# Your message: ");
                    string input             = Console.ReadLine();
                    string str               = _username + ": " + input;
                    int    currentLineCursor = Console.CursorTop - 1;
                    Console.SetCursorPosition(0, Console.CursorTop - 1);
                    Console.Write(new string(' ', Console.WindowWidth));
                    Console.SetCursorPosition(0, currentLineCursor);
                    Console.WriteLine("You: " + input);

                    byte[] b = System.Text.Encoding.UTF8.GetBytes(str);
                    _stream.Write(b, 0, b.Length);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Couldn't connect to the server port {port}");
                Console.WriteLine(e.Message);
            }
        }
Example #3
0
        private static void Main()
        {
            Console.WriteLine("Starting client.");
            var client = new QuicClient();

            Console.WriteLine("Connecting to server.");
            var connection = client.Connect("127.0.0.1", 11000); // Connect to peer (Server)

            Console.WriteLine("Connected");

            var stream = connection.CreateStream(StreamType.ClientBidirectional); // Create a data stream

            Console.WriteLine("Create stream with id: " + stream.StreamId.IntegerValue);

            Console.WriteLine("Send 'Hello From Client!'");
            stream.Send(Encoding.Unicode.GetBytes("Hello from Client!")); // Send Data
            Console.WriteLine("Waiting for message from the server");

            try
            {
                var data = stream.Receive(); // Receive from server
                Console.WriteLine("Received: " + Encoding.UTF8.GetString(data));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.ReadLine();
        }
Example #4
0
        static async Task Main(string[] args)
        {
            var conn = new QuicClient();
            await conn.ConnectAsync("localhost", 5000);

            System.Console.WriteLine("Press ENTER to quit");
            System.Console.ReadLine();
        }
Example #5
0
        public async Task SendFreshInchoateClientHello()
        {
            using (var client = new QuicClient())
            {
                await client.ConnectAsync("clients2.google.com", 443);

                Thread.Sleep(1000);
            }
        }
Example #6
0
        async static Task Run()
        {
            QuicClient client = new QuicClient("http3-test.litespeedtech.com", 4433);
            await client.Connect();

            await Task.Delay(100000000);

            //var res = await client.Request("index.html");
        }
Example #7
0
        static void Main(string[] args)
        {
            QuicClient        client  = new QuicClient();
            QuicContext       context = client.Connect("127.0.0.1", 11000); // Connect to peer (Server)
            QuicStreamContext sc      = client.CreateStream();              // Create a data stream

            sc.Send(Encoding.UTF8.GetBytes("Hello from Client!"));          // Send Data

            sc.Close();                                                     // Close the stream after processing
        }
Example #8
0
        static void Main(string[] args)
        {
            Console.ReadKey();
            QuicClient     qClient     = new QuicClient();
            QuicConnection qConnection = qClient.Connect("127.0.0.1", 11000);
            QuicStream     qStream     = qConnection.CreateStream(QuickNet.Utilities.StreamType.ClientBidirectional);

            Console.ReadKey();
            qStream.Send(Encoding.UTF8.GetBytes("Hello from Client!"));
            Console.WriteLine(qStream.Receive().ToString());
        }
Example #9
0
        static void Main(string[] args)
        {
            Console.WriteLine("Client");
            QuicClient     client     = new QuicClient();
            QuicConnection connection = client.Connect("127.0.0.1", 18000);   // Connect to peer (Server)

            // Create a Bidirectional data stream
            QuicStream stream = connection.CreateStream(QuickNet.Utilities.StreamType.ClientBidirectional);

            // Send Data
            var message = Console.ReadLine();

            stream.Send(Encoding.UTF8.GetBytes(message));

            // Receive from server (Blocks)
            byte[] data = stream.Receive();
            Console.ReadKey();
        }
Example #10
0
        static void Main(string[] args)
        {
            QuicClient client = new QuicClient();

            // Connect to peer (Server)
            QuicConnection connection = client.Connect("127.0.0.1", 11000);
            // Create a data stream
            QuicStream stream = connection.CreateStream(QuickNet.Utilities.StreamType.ClientBidirectional);

            // Send Data
            stream.Send(Encoding.UTF8.GetBytes("Hello from Client!"));
            // Wait reponse back from the server
            byte[] data = stream.Receive();

            Console.WriteLine(Encoding.UTF8.GetString(data));

            Console.ReadKey();
        }
Example #11
0
        public Req send_on_quic_protocol(string content,int port)
        {
            Req request = new Req();
            int ms = 0;
            int byteNumber = -1;
            request.Content = content;
            //Console.WriteLine("Starting client.");
            QuicClient client = new QuicClient();
            request.timeSended = DateTime.Now.ToLocalTime();
            QuicConnection connection = client.Connect("127.0.0.1", port);   // Connect to peer (Server)

            QuicStream stream_quic = connection.CreateStream(QuickNet.Utilities.StreamType.ClientBidirectional); // Create a data stream

            byte[] messageBytes = null;

            string aaa = JsonConvert.SerializeObject(request);
            messageBytes = System.Text.Encoding.UTF8.GetBytes(aaa);
            //Console.WriteLine("Send 'Hello From Client!'");
            stream_quic.Send(messageBytes);        // Send Data
            //Console.WriteLine("Waiting for message from the server");
            try
            {
                byte[] data = stream_quic.Receive();
                byteNumber = data.Length;
                DateTime timeRecieved = DateTime.Now.ToLocalTime();
                string message = cleanMessage(data);
                // Receive from server
                Req request_back = JsonConvert.DeserializeObject<Req>(message); // Deserialize
                request.timeRecieved = timeRecieved;
                TimeSpan span = request_back.timeRecieved - request_back.timeSended;
                request.number_of_bytes = data.Length;
                //request_back.timeRecieved.mili
                ms = (int)span.TotalMilliseconds;
                request.totalTime = ms;

            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return request;
        }
Example #12
0
        static void Main(string[] args)
        {
            Console.WriteLine("Starting client.");
            QuicClient client = new QuicClient();

            Console.WriteLine("Connecting to server.");
            QuicConnection connection = client.Connect("127.0.0.1", 11000);   // Connect to peer (Server)

            Console.WriteLine("Connected");

            QuicStream stream = connection.CreateStream(QuickNet.Utilities.StreamType.ClientBidirectional); // Create a data stream

            Console.WriteLine("Create stream with id: " + stream.StreamId.IntegerValue.ToString());

            Console.WriteLine("Send 'Hello From Client!'");
            stream.Send(Encoding.UTF8.GetBytes("Hello from Client!"));                           // Send Data

            stream = connection.CreateStream(QuickNet.Utilities.StreamType.ClientBidirectional); // Create a data stream
            stream.Send(Encoding.UTF8.GetBytes("Hello from Client2!"));

            Console.WriteLine("Waiting for message from the server");
            try
            {
                byte[] data = stream.Receive();                                   // Receive from server
                Console.WriteLine("Received: " + Encoding.UTF8.GetString(data));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            try
            {
                byte[] data = stream.Receive();                                   // Receive from server
                Console.WriteLine("Received: " + Encoding.UTF8.GetString(data));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.ReadKey();
        }
 public void QuicStream()
 {
     QuicClient.ConnectAsync().AsTask().GetAwaiter().GetResult();
 }
Example #14
0
 private static void Main(string[] args)
 {
     var conn = new QuicClient();
     conn.ConnectAsync("www.google.com", 443).RunSynchronously();
 }
Example #15
0
 // [Benchmark]
 public async Task QuicStream()
 {
     await using var stream = await QuicClient.AcceptStreamAsync();
     await RecvData(stream);
 }
Example #16
0
 protected override void IterationSetupQuicStream()
 {
     QuicClient = QuicFactory.CreateClient(new IPEndPoint(IPAddress.Loopback, QuicListener.ListenEndPoint.Port));
     QuicClient.ConnectAsync().AsTask().GetAwaiter().GetResult();
 }
Example #17
0
 protected override void IterationCleanupQuicStream()
 {
     QuicClient.Dispose();
 }
 protected sealed override void IterationSetupQuicStream()
 {
     QuicClient = QuicFactory.CreateClient(QuicListener.ListenEndPoint);
     QuicClient.ConnectAsync().AsTask().GetAwaiter().GetResult();
 }
 public void QuicStream()
 {
     QuicClient.Dispose();
 }
Example #20
0
        private static void Main(string[] args)
        {
            var conn = new QuicClient();

            conn.ConnectAsync("www.google.com", 443).RunSynchronously();
        }