//获取微信Post外网地址 public static string GetOuterPostAddress() { if (string.IsNullOrEmpty(outerPostAddressStr)) { ConfigComponent configComponent = Game.Scene.GetComponent <ConfigComponent>(); HttpListenerAddressConfig httpListenerAddressConfig = (HttpListenerAddressConfig)configComponent.Get(typeof(HttpListenerAddressConfig), 0); outerPostAddressStr = httpListenerAddressConfig.OuterPostAddress; } return(outerPostAddressStr); }
public void Start() { MyListerner = new HttpListener(); while (true) { try { MyListerner.AuthenticationSchemes = AuthenticationSchemes.Anonymous; ConfigComponent configComponent = Game.Scene.GetComponent <ConfigComponent>(); HttpListenerAddressConfig httpListenerAddressConfig = (HttpListenerAddressConfig)configComponent.Get(typeof(HttpListenerAddressConfig), 0); Log.Debug("服务器地址......" + httpListenerAddressConfig.Address); MyListerner.Prefixes.Add(httpListenerAddressConfig.Address); MyListerner.Start(); } catch (Exception ex) { Log.Debug(ex + "服务器启动失败......"); break; } Log.Debug("服务器启动成功......"); //线程池 int minThreadNum; int portThreadNum; int maxThreadNum; ThreadPool.GetMaxThreads(out maxThreadNum, out portThreadNum); ThreadPool.GetMinThreads(out minThreadNum, out portThreadNum); Log.Debug($"最大线程数:{maxThreadNum}"); Log.Debug($"最小空闲线程数:{minThreadNum}"); //ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc1), x); Log.Debug("\n等待客户连接中......"); while (true) { //等待请求连接 //没有请求则GetContext处于阻塞状态 HttpListenerContext ctx = MyListerner.GetContext(); ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc), ctx); } } }