Reputation: 1
This simple program stops after I make a http request. How can i make it so the program stays running so that i can open it in a new window?
using System.Net.Sockets;
namespace Pretpark
{
class Program
{
static void Main(string[] args)
{
TcpListener server = new TcpListener(new System.Net.IPAddress(new byte[] { 127,0,0,1 }), 5000);
server.Start();
using Socket connectie = server.AcceptSocket();
using Stream request = new NetworkStream(connectie);
using StreamReader requestLezer = new StreamReader(request);
string[]? regel1 = requestLezer.ReadLine()?.Split(" ");
if (regel1 == null) return;
(string methode, string url, string httpversie) = (regel1[0], regel1[1], regel1[2]);
string? regel = requestLezer.ReadLine();
int contentLength = 0;
while (!string.IsNullOrEmpty(regel) && !requestLezer.EndOfStream)
{
string[] stukjes = regel.Split(":");
(string header, string waarde) = (stukjes[0], stukjes[1]);
if (header.ToLower() == "content-length")
contentLength = int.Parse(waarde);
regel = requestLezer.ReadLine();
}
if (contentLength > 0) {
char[] bytes = new char[(int)contentLength];
requestLezer.Read(bytes, 0, (int)contentLength);
}
connectie.Send(System.Text.Encoding.ASCII.GetBytes("HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\nContent-Length: 11\r\n\r\nHello World"));
}
}
}
Upvotes: 0
Views: 31
Reputation: 50190
you need an accept socket again after the first request is processed.
you need to separate out the code to handle the request from the code to setup the socket
Upvotes: 1