程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#網絡通信框架networkcomms內核解析之二 消息處理流程,

c#網絡通信框架networkcomms內核解析之二 消息處理流程,

編輯:C#入門知識

c#網絡通信框架networkcomms內核解析之二 消息處理流程,


 networkcomms.net 來自英國的網絡通信框架 官方網址 www.networkcomms.net 中文網址www.networkcomms.cn

  發送端發送消息給接收端 ,接收端進行處理

  

舉例:客戶端把某用戶信息(用戶ID,用戶密碼)傳輸給服務器,服務器存儲到數據庫中。

發送方

    1、契約類(用戶信息類)     

 [ProtoContract]
    public  class UserInfo
    {
        [ProtoMember(1)]
        public string UserID;

        [ProtoMember(2)]
        public string Password;

        public UserInfo() { }

        public UserInfo(string userID, string password)
        {
            this.UserID = userID;
            this.Password = password;
        }

    }

    2、給契約類賦值    

UserInfo info = new UserInfo(“我的用戶ID”, "123456");

    3、客戶端發送

connection.SendObject("SendUserInfo", info);

 至此,我們發送了一個實際類型為UserInfo的契約類,給服務器端,此次發送的消息類型是 SendUserInfo

 接收端

 1、注冊消息類型

      (當接收端收到消息類型為SendUserInfo的消息時,會調用HandleUserInfo方法進行處理

NetworkComms.AppendGlobalIncomingPacketHandler<UserInfo>("SendUserInfo", HandleUserInfo);

2、相關的處理方法,處理方法的參數格式是統一的,第三個參數類型設置為客戶端發來的實際類型

    至於接收端如何把收到的二進制數據解析為實際類型,這由networkcomms通信框架來完成。

private void HandleUserInfo(PacketHeader header, Connection connection, UserInfo userInfo)
        {
            //對收到的契約類 userInfo進行處理
            string userID=userInfo.UserID;
            string passWord=userInfo.Password;
            //把獲取到的數據存入到數據庫中
        }

流程結束

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved