久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

C#編寫基于.Net IOCP的高性能服務(wù)器

 網(wǎng)文收集 2011-12-10
無論什么平臺,,編寫支持高并發(fā)性的網(wǎng)絡(luò)服務(wù)器,瓶頸往往出在I/O上,,目前最高效的是采用Asynchronous I/O模型,,Linux平臺提供了epoll,Windows平臺提供了I/O Completion Port(IO完成端口,,即IOCP),。

Windows 自winsock2開始就提供了IOCP支持,可以通過C++直接調(diào)用API,,但對于基于.Net的C#開發(fā),,是在.Net Framework2.0開始才引入的,,在2.0版本下,最高效的網(wǎng)絡(luò)服務(wù)器是通過異步Socket的一些列Beginxxx,,Endxxx方法實現(xiàn)的,, 底層就是基于IOCP的。

當.Net Framework升級到2.0 sp1之后,,.Net Socket又提供了一種更高效的一些列xxxAsync方法,,對底層IOCP實現(xiàn)性能有不少改進,.Net Framework升級到3.5之后更是成熟穩(wěn)定,,微軟也開始大力推廣,。

在實際應用中,證明C#編寫基于.Net IOCP的高性能服務(wù)器可以支持10000個以上的TCP長連接,。但在具體實現(xiàn)過程中需要注意幾個問題:
1.SocketAsyncEventArgs和Buffer最好預先分配,,并能回收重復利用。
2. 一個Socket的Send和Receive最好分別對應一個SocketAsyncEventArgs,,因為當一個 SocketAsyncEventArgs被ReceiveAsync調(diào)用掛起后,,在調(diào)用SendAsync時就會出異常。同樣不要對一個 SocketAsyncEventArgs在一個異步操作被掛起時再次調(diào)用,。


參考文章:
http://msdn.microsoft.com/zh-cn/magazine/cc163356.aspx
http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynceventargs.aspx

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多