Beispiel #1
0
 private void requestButton_Click(object sender, EventArgs e)
 {
     try
     {
         string        file          = filePathBox.Text;
         RequestHeader clientHeader  = new GetRequestHeader(file, Program.client.key);
         byte[]        requestHeader = clientHeader.ReturnRawHeader();
         Program.client.SendHeader(requestHeader);
         Program.client.stream.Flush();
         messageBox.Text = Program.client.HandleResponse(false, file).Value;
     }
     catch (Exception ex)
     {
         messageBox.Text = ex.Message;
     }
 }
Beispiel #2
0
        public void HandleFailureTest()
        {
            Client        testClient = new Client();
            RequestHeader testHeader = new GetRequestHeader("cheese.txt", testClient.key);

            testClient.Connect("127.0.0.1", 9001);
            testClient.SendHeader(testHeader.ReturnRawHeader());
            if (testClient.HandleResponse(false, "cheese.txt").Key == 0)
            {
                Assert.Pass();
            }
            else
            {
                Assert.Fail();
            }
        }
Beispiel #3
0
        public void SendResponseTest()
        {
            //Test to make sure that responses are successfully sent to the client

            Client         testClient   = new Client();
            RequestHeader  testHeader   = new GetRequestHeader("cheese.txt", testClient.key);
            ResponseHeader testResponse = new ResponseHeader();

            testClient.Connect("127.0.0.1", 9001);
            testClient.SendHeader(testHeader.ReturnRawHeader());
            if (testClient.HandleResponse(false, "cheese.txt").Key == 0)
            {
                Assert.Pass();
            }
            else
            {
                Assert.Fail();
            }
        }
Beispiel #4
0
        public void HandleRequestTest()
        {
            //Test to make sure that requests are successfully handled

            Client         testClient   = new Client();
            RequestHeader  testHeader   = new GetRequestHeader("cheese.txt", testClient.key);
            ResponseHeader testResponse = new ResponseHeader();
            ResponseHeader failResponse = new ResponseHeader(2, Encoding.UTF8.GetBytes("Bad header received"));

            testClient.Connect("127.0.0.1", 9001);
            testClient.SendHeader(testHeader.ReturnRawHeader());
            if (testResponse == failResponse)
            {
                Assert.Fail();
            }
            else
            {
                Assert.Pass();
            }
        }
        public RequestHeader BuildHeader(BigInteger _key)
        {
            RequestHeader clientHeader = new RequestHeader();
            int           requestCode  = -1;

            //Loops console output to user until correct GET/POST request type is entered
            while (requestCode == -1)
            {
                Console.WriteLine("Type GET to download a file and POST to send a file: ");
                string requestType = Console.ReadLine();

                if (requestType == "GET" || requestType == "get")
                {
                    requestCode = 0;
                    //isPost automatically false
                }
                else if (requestType == "POST" || requestType == "post")
                {
                    requestCode = 1;
                    isPost      = true;
                }
                else
                {
                    Console.WriteLine("Incorrect request, please enter valid request type...");
                }
            }

            // handles GET requests, builds header with supplied filename
            if (requestCode == 0)
            {
                Console.WriteLine("Please enter the filename you would like to receive:");
                filename = Console.ReadLine();

                clientHeader = new GetRequestHeader(filename, _key);
                return(clientHeader);
            }

            // handles POST requests - builds header if file exists
            if (requestCode == 1)
            {
                while (true)
                {
                    Console.WriteLine("Please enter the filepath of the file you would like to send:");
                    filename = Console.ReadLine();

                    // checks if file exists under given path
                    if (File.Exists(filename))
                    {
                        // byte[] fileData = File.ReadAllBytes(filepath);
                        clientHeader = new PostRequestHeader(filename, _key);
                        return(clientHeader);
                    }
                    else
                    {
                        Console.WriteLine("File not found, please enter valid filepath...");
                    }
                }
            }

            return(clientHeader);
        }