我这边写了个代码
private void frmMain_Load(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
listener = new HttpListener();
prefixes = new string[] { "http://192.168.0.32:80/" };
foreach (string item in prefixes)
{
listener.Prefixes.Add(item);
}
thTidy = new Thread(PortListen2);
thTidy.IsBackground = true;
thTidy.Start();
}
public void PortListen()
{
//bool result = false;
if (!HttpListener.IsSupported)
{
MessageBox.Show("版本太低");
}
if (!listener.IsListening)
{
listener.Start();
}
button2.Text = "监听中...";
HttpListenerContext context;
while (true)
{
try
{
if (listener.IsListening)
{
context = listener.GetContext();
HttpListenerRequest request = context.Request;
Console.WriteLine("{0} {1} HTTP/1.1", request.HttpMethod, request.RawUrl);
string name = context.Request.QueryString["name"];
HttpListenerResponse response = context.Response;
string responseString = "<html><head><title>response server</title></head><body>hello world!</body></html>";
if (name == null)
responseString = string.Empty;
else
responseString = name;
responseString = name;
if (name != null)
{
response.ContentLength64 = System.Text.Encoding.UTF8.GetByteCount(responseString);
response.ContentType = "text/html; charset=UTF-8"; //设置输出类型
System.IO.Stream output = response.OutputStream;
System.IO.StreamWriter writer = new System.IO.StreamWriter(output);
writer.Write(responseString);
writer.Close();
}
if(listener.IsListening)
listener.Stop();
}
}
catch (Exception ex)
{
new frmError("监听异常", ex.Message).ShowDialog();
}
finally
{
if(!listener.IsListening)
listener.Start();
}
}
}
我现在内网的机子可以访问了 ,但是不知道怎么开放到外网去。那位大婶帮帮忙吧
------解决思路----------------------
有个公网IP的机器就可以了