创建一个简单的HTTP服务(自动查找未使用的端口)


            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;
        }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM