我是一个新手 c# 开发人员 - 试图编写一个简单的 win7 服务。
该服务应启动 HTTPListener 并侦听传入的浏览器请求,当收到请求时,它会返回响应并继续侦听其他请求。我不需要处理并行性,因为一次不会超过一个请求(而且非常短)。
我使用了以下代码,但在第一次响应后服务停止响应。我可能在某个地方需要一个循环,但我不熟悉 API,所以我也可能对我正在做的事情有误。
感谢您的帮助。
protected override void OnStart(string[] args)
{
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://localhost:9999/");
listener.Start();
listener.BeginGetContext(new AsyncCallback(OnRequestReceive), listener);
}
private void OnRequestReceive(IAsyncResult result)
{
HttpListener listener = (HttpListener)result.AsyncState;
HttpListenerContext context = listener.EndGetContext(result);
HttpListenerResponse response = context.Response;
byte[] buff = {1,2,3};
response.Close(buff, true);
}