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; } }
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(); } }
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(); } }
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); }