当前位置: 代码迷 >> .NET Framework >> 关于winform 使用HttpListener开放外网连接解决方案
  详细解决方案

关于winform 使用HttpListener开放外网连接解决方案

热度:112   发布时间:2016-05-01 23:30:40.0
关于winform 使用HttpListener开放外网连接
我这边写了个代码
 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的机器就可以了
  相关解决方案