morry2341

Webserver_Driver

Nov 10th, 2022
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. /*Schreiben Sie einen einfachen Datenbankserver, der Anfangen über den REST-Archtekturstil entgegennimmt und
  2. * dabei folgende proprietäre Datenbanksprache unterstützt.
  3. *
  4. */
  5.  
  6.  
  7.  
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Net;
  11. using System.Net.Sockets;
  12. using System.Data.SqlClient;
  13. using System.Threading;
  14. using System.Threading.Tasks;
  15.  
  16. namespace EinfacherWebserver
  17. {
  18. class Program
  19. {
  20. private TcpListener listener;
  21. private Int32 Port = 13000;
  22.  
  23.  
  24. static void Main(string[] args)
  25. {
  26. Console.WriteLine("Hello World!");
  27. }
  28.  
  29. public void Start()
  30. {
  31.  
  32. listener = new TcpListener(IPAddress.Loopback, Port);
  33. listener.Start();
  34.  
  35. var requests = new Requests();
  36.  
  37. while (true)
  38. {
  39. var client = listener.AcceptTcpClient();
  40. requests.Add(client);
  41.  
  42. if (!listener.Pending())
  43. {
  44. Uri uriAddress = new Uri("http:///localhost:7777");
  45. requests.Process(uriAddress.LocalPath);
  46. }
  47. }
  48.  
  49. }
  50.  
  51. private class Requests
  52. {
  53. Queue<TcpClient> q = new Queue<TcpClient>();
  54. public void Add(TcpClient client)
  55. {
  56. q.Enqueue(client);
  57. }
  58.  
  59. public void Process(string path)
  60. {
  61. Console.WriteLine("Queue: " + q.Count);
  62.  
  63. while (q.Count > 0)
  64. {
  65. try
  66. {
  67. var req = new Request(q.Dequeue(), path);
  68. Console.WriteLine(" " + req.LocalUrl);
  69. }
  70. catch (Exception e)
  71. {
  72. Console.WriteLine("Error: " + e.Message);
  73.  
  74. }
  75. }
  76. }
  77. }
  78.  
  79.  
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment