创建一个简单的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;
        }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

Flash/Flex学习笔记(32):播放音乐并同步显示lyc歌词(适用于Silverlight)

题外话:个别朋友总是问我同样的问题,做为一名c#/silverlight程序员为啥还要学flash ? 回 答:看日本片时,就不能对照看欧美的么? 不体会日本的...

2187
来自专栏用户画像

Java HttpClient两种数据传输方式

二、server端的数据接收方式,使用@RequestBody接收二进制字节流,使用@RequestParam接收参数列表

6021
来自专栏个人随笔

C#编写街道管理系统

项目需求: 一、语言和环境A、实现语言 C#B、环境要求 Visual Studio 2012 二、功能要求 现使用.NET WinForms技术为居委会开发...

4766
来自专栏谈补锅

记录C#常用的代码片段

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

2232
来自专栏腾讯云技术服务团队

C#封装v5 COS API实践-post方法

感兴趣的小伙伴们可以下载直接使用,基于C#改成java也很方便,希望可以降低大家调试API成本。

2024
来自专栏张善友的专栏

JavaScript 和asp.net配合编码字符串

     .net 的System.Text.ASCIIEncoding 和System.BitConvertor类配合在服务端加密字符串,客户端使用Javas...

2499
来自专栏JadePeng的技术博客

使用Mongodb 做对象缓存

mongodb高效的访问速度,用来快速存取数据再合适不过了,缓存神马的,可以用这个的 另外,有的时候,如果仅仅存储几条数据,单独去建立一张表代价太大,这个时候,...

4995
来自专栏跟着阿笨一起玩NET

使用dynamic来简化反射实现,并且提高了性能。

本人转载:http://www.cnblogs.com/cuitsl/archive/2012/01/06/2314636.html

1691
来自专栏跟着阿笨一起玩NET

NPOI简述与运用

最近想把项目中Excel中的操作部分改成NPOI ,由于2.0版本已经支持office07/10格式,但还处于测试版不稳定,于是封装如下代码

1371
来自专栏张善友的专栏

.NET 4 System.Threading.CountdownEvent

在Visual Studio 2010 and .NET Framework 4 Training Kit中有个System.Threading.Countdo...

1858

扫码关注云+社区

领取腾讯云代金券