示例#1
0
        /*
         * public void SendFileTest()
         * {
         *  Assert.Pass();
         * }*/
        public void ReceiveFileTest()
        {
            //Test to make sure that files are being received properly.

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

            testClient.Connect("127.0.0.1", 9001);
            testClient.SendHeader(testHeader.ReturnRawHeader());
            // Not finished yet

            Assert.Pass();
        }
 private void sendButton_Click(object sender, EventArgs e)
 {
     try
     {
         string        file          = filePathBox.Text;
         RequestHeader clientHeader  = new PostRequestHeader(file, Program.client.key);
         byte[]        requestHeader = clientHeader.ReturnRawHeader();
         Program.client.SendHeader(requestHeader);
         messageBox.Text = Program.client.HandleResponse(true, file).Value;
     }
     catch (Exception ex)
     {
         messageBox.Text = ex.Message;
     }
 }
示例#3
0
        public void SendPostRequestTest()
        {
            Client testClient = new Client();

            byte[]        testFile   = File.ReadAllBytes(Path.Join(System.AppDomain.CurrentDomain.BaseDirectory, "cheese.txt"));
            RequestHeader testHeader = new PostRequestHeader("cheese.txt", testClient.key);

            testClient.Connect("127.0.0.1", 9001);
            testClient.SendHeader(testHeader.ReturnRawHeader());
            if (testClient.HandleResponse(true, "cheese.txt").Key == 0)
            {
                Assert.Pass();
            }
            else
            {
                Assert.Fail();
            }
        }
        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);
        }