真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#中怎么實(shí)現(xiàn)異步Socket

C#中怎么實(shí)現(xiàn)異步Socket,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),科爾沁企業(yè)網(wǎng)站建設(shè),科爾沁品牌網(wǎng)站建設(shè),網(wǎng)站定制,科爾沁網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,科爾沁網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

1、主要技術(shù)思路

整個(gè)系統(tǒng)由三個(gè)核心線程組成,并由.NET線程池統(tǒng)一管理:

偵聽客戶端連接請(qǐng)求線程:ListenClientRequest(),循環(huán)偵聽客戶端連接請(qǐng)求。如果有,檢測(cè)該客戶端IP,看是否是同一觀測(cè)設(shè)備,然后建立一個(gè)客戶端TSession對(duì)象,并通過異步Socket調(diào)用方法BeginReceive()接收數(shù)據(jù)包、EndReceive()處理數(shù)據(jù)包 數(shù)據(jù)包處理線程:HandleDatagrams(),循環(huán)檢測(cè)數(shù)據(jù)包隊(duì)列_datagramQueue,完成數(shù)據(jù)包解析、判斷類型、存儲(chǔ)等工作 客戶端狀態(tài)檢測(cè)線程:CheckClientState(),循環(huán)檢查客戶端會(huì)話表_sessionTable,判斷會(huì)話對(duì)象是否有效,設(shè)置超時(shí)會(huì)話關(guān)閉標(biāo)志,清楚無效會(huì)話對(duì)象及釋放其資源。

2、主要類簡(jiǎn)介

系統(tǒng)主要由3個(gè)類組成:

TDatagramReceiver(數(shù)據(jù)包接收服務(wù)器):系統(tǒng)的核心進(jìn)程類,建立Socket連接、處理與存儲(chǔ)數(shù)據(jù)包、清理系統(tǒng)資源,該類提供全部的public屬性和方法 TSession(客戶端會(huì)話):由每個(gè)客戶端的Socket對(duì)象組成,有自己的數(shù)據(jù)緩沖區(qū),清理線程根據(jù)該對(duì)象的最近會(huì)話時(shí)間判斷是否超時(shí) TDatagram(數(shù)據(jù)包類):判斷數(shù)據(jù)包類別、解析數(shù)據(jù)包

3、關(guān)鍵函數(shù)和代碼

下面簡(jiǎn)介核心類TDatagramReceiver的關(guān)鍵實(shí)現(xiàn)代碼。系統(tǒng)啟動(dòng)

系統(tǒng)啟動(dòng)方法StartReceiver()首先清理資源、創(chuàng)建數(shù)據(jù)庫連接、初始化若干計(jì)數(shù)值,然后創(chuàng)建服務(wù)器端偵聽Socket對(duì)象,***調(diào)用靜態(tài)方法ThreadPool.QueueUserWorkItem()在線程池中創(chuàng)建3個(gè)核心處理線程。以上介紹C#異步Socket

Code  ///  ///啟動(dòng)接收器  ///  publicboolStartReceiver()  {  try  {  _stopReceiver=true;   this.Close();   if(!this.ConnectDatabase())returnfalse;   _clientCount=0;  _datagramQueueCount=0;  _datagramCount=0;  _errorDatagramCount=0;  _exceptionCount=0;   _sessionTable=newHashtable(_maxAllowClientCount);  _datagramQueue=newQueue(_maxAllowDat)

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


名稱欄目:C#中怎么實(shí)現(xiàn)異步Socket
當(dāng)前鏈接:http://weahome.cn/article/ghdhej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部