C# HttpListener 開發伺服器示例
阿新 • • 發佈:2018-12-20
private
static
HttpListener listener;
public
static
void
demo()
{
if
(listener ==
null
)
{
listener =
new
HttpListener();
var url =
"http://+:9876/"
;
listener.Prefixes.Add(url);
listener.Start();
listener.BeginGetContext(MainProcess,
null
);
};
}
private
static
void
MainProcess(IAsyncResult ar)
{
var context = listener.EndGetContext(ar);
listener.BeginGetContext(MainProcess,
null
);
var response = context.Response;
response.AddHeader(
"Server"
,
"My Server V0.0.1"
);
var request = context.Request;
var path = request.Url.LocalPath;
if
(path.StartsWith(
"/"
) || path.StartsWith(
"\\"
))
path = path.Substring(1);
var sb =
new
StringBuilder(
"輸入請求:"
);
sb.AppendLine(path);
var visit = path.Split(
new
char
[] {
'/'
,
'\\'
}, 2);
if
(visit.Length > 0)
{
var cmd = visit[0].ToLower();
sb.AppendLine(
string
.Format(
"執行命令:{0}"
, cmd));
sb.AppendLine(
string
.Format(
"另外有{0}個引數"
, visit.Length - 1 + request.QueryString.Count));
}
sb.AppendLine(DateTime.Now.ToString());
response.ContentType =
"text/plain;charset=UTF-8"
;
var result = Encoding.UTF8.GetBytes(sb.ToString());
using
(var stream = response.OutputStream)
{
stream.Write(result, 0, result.Length);
}
}