启动监听模式
// 本机服务
string localUrl = "http://+:9001/check/";//配置监听地址。+代表本机可能的IP如localhost、127.0.0.1、192.168.199.X(本机IP)等;
// 超时时间
this.timeout = 1500;
this.httpListener = new HttpListener();
// 匿名身份验证
this.httpListener.AuthenticationSchemes = AuthenticationSchemes.Anonymous;
// 监听本机服务
this.httpListener.Prefixes.Add(localUrl);
// 接收连接本机服务的请求
this.httpListener.Start();
// 委托线程启动
this.listenThread = new Thread(new ThreadStart(delegate
{
try
{
loop(this.httpListener);
}
catch (Exception)
{
this.httpListener.Stop();
}
}));
this.listenThread.IsBackground = true;
this.listenThread.Start();
侦听处理:
#region 侦听处理
// 侦听处理
private void loop(HttpListener httpListener)
{
while (true)
{
HttpListenerContext context = httpListener.GetContext();
HttpListenerRequest hRequest = context.Request;
HttpListenerResponse hResponse = context.Response;
if (hRequest.HttpMethod == "POST")
{
StreamReader reader = new StreamReader(hRequest.InputStream, Encoding.UTF8);
string data = reader.ReadToEnd();
richTextBox1.Text += data + "\r\n";//将接受到的消息进行显示
string json = "";//返回的消息内容
byte[] res = Encoding.UTF8.GetBytes(json);
hResponse.OutputStream.Write(res, 0, res.Length);
//关闭输出流,释放相应资源
hResponse.OutputStream.Close();
}
}
}
#endregion