Advertisement
Guest User

HttpServer

a guest
Dec 17th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Threading;
  7. using BIF.SWE1.Interfaces;
  8.  
  9. namespace MyWebServer
  10. {
  11. class HttpServer
  12. {
  13. private bool _running = false;
  14. private TcpListener _listener;
  15.  
  16. public HttpServer(int port)
  17. {
  18. _listener = new TcpListener(IPAddress.Any, port);
  19. }
  20.  
  21. public void Start()
  22. {
  23. Thread serverThread = new Thread(new ThreadStart(Run));
  24. serverThread.Start();
  25. }
  26.  
  27. public void Run()
  28. {
  29. _running = true;
  30. _listener.Start();
  31.  
  32. while (_running)
  33. {
  34. Console.WriteLine("Waiting for connection...");
  35.  
  36. TcpClient client = _listener.AcceptTcpClient();
  37.  
  38. HandleClient(client);
  39.  
  40. client.Close();
  41. }
  42.  
  43. _running = false;
  44.  
  45. _listener.Stop();
  46. }
  47.  
  48. private void HandleClient(TcpClient client)
  49. {
  50. Request req = new Request(client.GetStream());
  51. PluginManager m = new PluginManager();
  52. IPlugin plugin = m.GetRequestedPlugin(req);
  53. Response response = (Response)plugin.Handle(req);
  54. Console.WriteLine("response created");
  55. response.Send(client.GetStream());
  56. }
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement