一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Socket開(kāi)發(fā)探秘--基類(lèi)及公共類(lèi)的定義

Socket開(kāi)發(fā)是屬于通信底層的開(kāi)發(fā),.NET也提供了非常豐富的類(lèi)來(lái)實(shí)現(xiàn)Socket的開(kāi)發(fā)工作,本篇不是介紹這些基礎(chǔ)類(lèi)的操作,而是從一個(gè)大的架構(gòu)方面闡述Socket的快速開(kāi)發(fā)工作,本篇以TCP模式進(jìn)行程序的開(kāi)發(fā)介紹,以期達(dá)到拋磚引玉的目的。

要掌握或者了解Socket開(kāi)發(fā),必須了解下面所述的場(chǎng)景及知識(shí)。

1、TCP客戶端,連接服務(wù)器端,進(jìn)行數(shù)據(jù)通信

2、TCP服務(wù)器端,負(fù)責(zé)偵聽(tīng)客戶端連接

3、連接客戶端的管理,如登陸,注銷(xiāo)等,使用獨(dú)立線程處理

4、數(shù)據(jù)接收管理,負(fù)責(zé)數(shù)據(jù)的接受,并處理隊(duì)列的分發(fā),使用獨(dú)立線程處理,簡(jiǎn)單處理后叫給“數(shù)據(jù)處理線程”

5、數(shù)據(jù)處理線程,對(duì)特定的數(shù)據(jù),采用獨(dú)立的線程進(jìn)行數(shù)據(jù)處理

6、數(shù)據(jù)的封包和解包,按照一定的協(xié)議進(jìn)行數(shù)據(jù)的封裝和解包

 

針對(duì)以上內(nèi)容,可以封裝以下功能的操作類(lèi)作為共用基類(lèi):

1、BaseSocketClient,客戶端基類(lèi)

2、BaseSocketServer,TCP服務(wù)器管理基類(lèi)

3、BaseClientManager,連接客戶端管理類(lèi)

4、BaseReceiver,數(shù)據(jù)接收處理類(lèi)

5、ThreadHandler,數(shù)據(jù)獨(dú)立線程處理類(lèi)

6、PreData、DataTypeKey、Sign分別是定義數(shù)據(jù)的基礎(chǔ)格式、協(xié)議標(biāo)識(shí)、分隔符號(hào)等,另外我們定義需要發(fā)送的實(shí)體類(lèi)信息,發(fā)送和接收通過(guò)實(shí)體類(lèi)進(jìn)行數(shù)據(jù)轉(zhuǎn)換和解析。

以上類(lèi)是基類(lèi),不能直接使用,在服務(wù)器端和客戶端都要繼承相應(yīng)的類(lèi)來(lái)完成所需要的工作。

BaseSocketClient只要負(fù)責(zé)客戶端的鏈接、斷開(kāi)、發(fā)送、接收等操作,大致的定義如下:

代碼    public class BaseSocketClient
    {       
        
public BaseSocketClient()
        {
            _Name 
= this.GetType().Name;
        }

        
public BaseSocketClient(Socket socket) : this()
        {
            _socket 
= socket;
            IPEndPoint ipAndPort 
= (IPEndPoint)socket.RemoteEndPoint;
            _IP 
= ipAndPort.Address.ToString();
            _port 
= ipAndPort.Port;
        }

        
/// 
        
/// 斷開(kāi)連接
        
///  
        public virtual void DisConnect()
        {
            .........
        }

        
/// 
        
/// 主動(dòng)連接
        
///  
        public virtual void Connect(string ip, int port)
        {
            ........
        }
        
        
/// 
        
/// 開(kāi)始異步接收
        
///  
        public void BeginReceive()
        {
            .........
        }
        
         
/// 
         
/// 開(kāi)始同步接收
         
///                 
         public void StartReceive()
         {
              .........
         }
         
        
/// 
        
///異步發(fā)送
        
///  
        public void BeginSend(SendStateObject sendState)
        {
            ........
        }
        
        
/// 
        
/// 同步發(fā)送。直接返回成功失敗狀態(tài)
        
///  
        public bool SendTo(string data)
        {
            .........
        }
        
/// 
        
/// 主動(dòng)檢查連接
        
///  
        public virtual void CheckConnect()
        {
            .............
        }
        
        
protected virtual void OnRead(PreData data)
        {
        }
    }

NET技術(shù)Socket開(kāi)發(fā)探秘--基類(lèi)及公共類(lèi)的定義,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 91九九| caoporn97人人做人人爱最新 | 午夜神马视频 | 欧美就是色 | 国产91视频观看 | 99精品免费观看 | 一本中文字幕一区 | 免费观看欧美成人1314w色 | 欧美福利视频网站 | 国产精品视频全国免费观看 | 97日韩| 视频在线观看一区 | 国产精品视频免费观看 | 久艾草国产成人综合在线视频 | 伊人久久免费视频 | 夜夜夜夜夜夜夜猛噜噜噜噜噜噜 | 春暖花开亚洲x8永久地址 | 伊人免费视频二 | 国产91麻豆精品 | 国产成人精品久久一区二区三区 | 深爱五月开心网亚洲综合 | 理论片 我不卡影院 | 国产精品第5页 | 91福利国产在线观看 | 9re视频这里只有精品 | 337p人体大胆扒开下部 | 午夜免费视频网站 | 桃花阁成人网在线观看 | 999精品视频在线 | 99爱在线精品视频免费观看9 | 精品视频免费在线 | 国产成人mv在线观看入口视频 | 午夜国产大片免费观看 | 婷婷综合激情 | 天天躁日日躁成人字幕aⅴ 天天躁日日躁狠狠躁中文字幕老牛 | 四虎最新永久免费视频 | 六月激情 | 亚洲系列中文字幕一区二区 | 久久婷婷国产精品香蕉 | 麻豆精品 | 亚洲第一视频在线播放 |