سلام بر تمامی برنامه نویسان سی شارپ 😉 در این پست کد استفاده از HttpListener در #C را آماده کردم. انشاالله که این آموزش برای شما مفید باشد.
کد استفاده از HttpListener در #C :
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading;
class WebServer {
HttpListener _listener;
string _baseFolder;
public WebServer(string uriPrefix, string baseFolder) {
System.Threading.ThreadPool.SetMaxThreads(50, 1000);
System.Threading.ThreadPool.SetMinThreads(50, 50);
_listener = new HttpListener();
_listener.Prefixes.Add(uriPrefix);
_baseFolder = baseFolder;
}
public void Start() {
_listener.Start();
while (true)
try {
HttpListenerContext request = _listener.GetContext();
ThreadPool.QueueUserWorkItem(ProcessRequest, request);
} catch (HttpListenerException) { break; }
catch (InvalidOperationException) { break; }
}
public void Stop() { _listener.Stop(); }
void ProcessRequest(object listenerContext) {
try {
var context = (HttpListenerContext)listenerContext;
string filename = Path.GetFileName(context.Request.RawUrl);
string path = Path.Combine(_baseFolder, filename);
using System.IO;
using System.Net;
using System.Text;
using System.Threading;
class WebServer {
HttpListener _listener;
string _baseFolder;
public WebServer(string uriPrefix, string baseFolder) {
System.Threading.ThreadPool.SetMaxThreads(50, 1000);
System.Threading.ThreadPool.SetMinThreads(50, 50);
_listener = new HttpListener();
_listener.Prefixes.Add(uriPrefix);
_baseFolder = baseFolder;
}
public void Start() {
_listener.Start();
while (true)
try {
HttpListenerContext request = _listener.GetContext();
ThreadPool.QueueUserWorkItem(ProcessRequest, request);
} catch (HttpListenerException) { break; }
catch (InvalidOperationException) { break; }
}
public void Stop() { _listener.Stop(); }
void ProcessRequest(object listenerContext) {
try {
var context = (HttpListenerContext)listenerContext;
string filename = Path.GetFileName(context.Request.RawUrl);
string path = Path.Combine(_baseFolder, filename);