var t = new Thread(new ThreadStart(() => {
HttpListener listener = new HttpListener();
var prefix = string.Format("http://localhost:{0}/", port);
listener.Prefixes.Add(prefix);
listener.Start();
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
string responseString = "<HTML><BODY> Hello world!</BODY></HTML>";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
response.ContentLength64 = buffer.Length;
System.IO.Stream output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
output.Close();
listener.Stop();
}));
t.Start();
using System.Net;
static int GetPort()
{
IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners();
var port = 800;
var flag = true;
while(flag)
{
flag = ipEndPoints.Any(p => { return p.Port == 800; });
if (flag)
{
port += 1;
if(port == 60000)
{
MessageBox.Show("端口都被占用了,请联系管理员");
flag = false;
Environment.Exit(0);
}
}
else
{
flag = false;
break;
}
}
return port;
}