第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

ASP.NET那點(diǎn)不為人知的事

標(biāo)簽:
Node.js

阅读目录

  • 重构后的版本:

  • 总结

虽然开发中很少接触多线程,但你必须承认你离不开他。

接着上篇博客(ASP.NET那点不为人知的事(三)),基本可以实现一个Mini版的服务器,但也有不足:

倘若客户端飞快地连接,服务端很快被压垮。

幸好,Socket类实现了.NET框架的异步调用模式,使用这个模式,利用线程池就可以让服务器更好的服务于到来的请求。

回到顶部

重构后的版本:

复制代码

class Program    {        private const int ConnectionQueueLength = 4;        private const int ListenPort = 1234;        private const int MaxConnectionHandlers = 4;        static void HandleConnection(IAsyncResult ar)        {            //AsyncResult asyncResult = (AsyncResult) ar;            Socket listener=(Socket)ar.AsyncState;            Socket newConnectin = listener.EndAccept(ar);            byte[] msg = Encoding.UTF8.GetBytes("Hello World");            newConnectin.BeginSend(msg, 0, msg.Length, SocketFlags.None, new AsyncCallback(Program.CloseConnection),                                   newConnectin);        }        static void CloseConnection(IAsyncResult ar)        {            Socket socket = ar.AsyncState as Socket;            if (socket!=null)            {                socket.Close();            }        }                static void Main(string[] args)        {            Socket listenSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);            listenSocket.Bind(new IPEndPoint(IPAddress.Any,ListenPort));            listenSocket.Listen(ConnectionQueueLength);            for (int i = 0; i < MaxConnectionHandlers; i++)            {                listenSocket.BeginAccept(new AsyncCallback(Program.HandleConnection), listenSocket);                }            Console.ReadKey();        }    }

复制代码

这样我们的服务器更加有效率,他从线程池中发送数据回去。

注意这儿的异步调用(new AsyncCallback(Program.CloseConnection))使用了一个关闭连接的回调方法,因为为了让服务器更加高效,让侦听线程在EndSend等待是没有任何意义的,因为它将堵塞当前线程。 

回到顶部

总结

服务器阶段就结束了,相信你也对他有一定的了解了,接下来会再讲讲ASP.NET 中是怎样实现多线程的。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消