亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C# networkcomms 3.0實現模擬登陸總結

2019-10-29 21:09:23
字體:
來源:轉載
供稿:網友

最近項目需要做一個客戶查詢狀態系統,當前上位機缺少服務功能,于是找到了networkcomms 開源框架,作為項目使用.

最新版networkcomms 下載地址:#25af49f0e79fce90312f328a2c7bc2cc#

下載直接vs打開

新建服務器端

c#,networkcomms,3.0實現模擬登陸

using MessageContract;using NetworkCommsDotNet;using NetworkCommsDotNet.Connections;using NetworkCommsDotNet.Connections.TCP;using NetworkCommsDotNet.DPSBase;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Net;using System.Text;using System.Windows.Forms;namespace AppServer{  public partial class MaiForm : Form  {    public MaiForm()    {      InitializeComponent();    }    SendReceiveOptions aboveOptions = new SendReceiveOptions(DPSManager.GetDataSerializer<ProtobufSerializer>(), null, null);    private void button1_Click(object sender, EventArgs e)    {      //服務器開始監聽客戶端的請求      Connection.StartListening(ConnectionType.TCP, new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text)));      //服務器開始監聽客戶端的請求            //IPEndPoint thePoint = new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text));      //TCPConnection.StartListening(thePoint, false);      button1.Text = "監聽中";      button1.Enabled = false;      //button1.Text = "監聽中";      //button1.Enabled = false;      //此方法中包含服務器具體的處理方法。      StartListening();    }    private void StartListening()    {      //開啟日志記錄       //配置日志記錄器      //ILogger logger = new LiteLogger(LiteLogger.LogMode.ConsoleAndLogFile, "ServerLogFile_" + NetworkComms.NetworkIdentifier + ".txt");      //NetworkComms.EnableLogging(logger);      //禁用日志記錄 服務器端正式使用時,贏禁用日志記錄      NetworkComms.DisableLogging();      //服務器端處理收到的消息      //為簡單起見,此示例中我們只處理字符類型的信息,也返回字符類型的信息。      //處理的信息可以使自定義類,具體見下一個Demo      NetworkComms.AppendGlobalIncomingPacketHandler<LoginContract>("ReqLogin", IncomingLoginRequest);    }    //處理某個具體的請求    private void IncomingLoginRequest(PacketHeader header, Connection connection, LoginContract loginContract)    {      try      {        string resMsg = "";        //為了簡單,這里不調用數據庫,而是模擬一下登錄        if (loginContract.UserID == "1000" && loginContract.PassWord == "123")          resMsg = "登錄成功";        else          resMsg = "用戶名密碼錯誤";        //把返回結果寫入到契約類中,后面返回給客戶端        //ResMsgContract contract = new ResMsgContract();        //contract.Message = resMsg;        //connection.SendObject<ResMsgContract>("ResLogin", contract);        ResMsgContract contract = new ResMsgContract();        contract.Message = resMsg;        connection.SendObject("ResLogin", contract);      }      catch (Exception ex)      {        // LogTools.LogException(ex, "IncomingMsgHandle");      }    }  }}

在別的幫助中往往少了這行:導致出現客戶端發送時,類型打包出現問題. 這行代碼是客戶端服務器兩端都要加上的,是指定傳輸方式

 SendReceiveOptions aboveOptions = new SendReceiveOptions(DPSManager.GetDataSerializer<ProtobufSerializer>(), null, null);

就是這個報錯了

c#,networkcomms,3.0實現模擬登陸

一下是客戶端

c#,networkcomms,3.0實現模擬登陸

using MessageContract;using NetworkCommsDotNet;using NetworkCommsDotNet.Connections;using NetworkCommsDotNet.Connections.TCP;using NetworkCommsDotNet.DPSBase;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace AppClient{  public partial class MainForm : Form  {    public MainForm()    {      InitializeComponent();    }    //連接信息對象    public ConnectionInfo connInfo = null;    //連接對象    Connection newTcpConnection;    SendReceiveOptions aboveOptions = new SendReceiveOptions(DPSManager.GetDataSerializer<ProtobufSerializer>(), null, null);    private void button1_Click(object sender, EventArgs e)    {      //給連接信息對象賦值      connInfo = new ConnectionInfo(txtIP.Text, int.Parse(txtPort.Text));      //如果不成功,會彈出異常信息      newTcpConnection = TCPConnection.GetConnection(connInfo);      button1.Enabled = false;      button1.Text = "連接成功";    }    private void btnlogin_Click(object sender, EventArgs e)    {      //給契約類賦值      LoginContract contract = new LoginContract(txtUserName.Text, txtPassword.Text);      //contract.UserID = txtUserName.Text;      //contract.PassWord = txtPassword.Text;      //向服務器發送登錄信息并獲取登錄結果       ResMsgContract resMsg = newTcpConnection.SendReceiveObject<LoginContract, ResMsgContract>("ReqLogin", "ResLogin", 5000, contract);      //向服務器發送登錄信息并獲取登錄結果      // ResMsgContract resMsg = newTcpConnection.SendReceiveObject<ResMsgContract>("ReqLogin", "ResLogin", 5000, contract);      if (resMsg.Message == "登錄成功")      {        MessageBox.Show("登錄成功");      }      else      {        MessageBox.Show("用戶名密碼錯誤");      }    }  }}

契約類

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MessageContract{  [ProtoContract]  public class LoginContract  {    [ProtoMember(1)]    public string UserID { get; set; }    [ProtoMember(2)]    public string PassWord { get; set; }    public LoginContract() { }    public LoginContract(string userID, string passWord)    {      this.UserID = userID;      this.PassWord = passWord;    }  }}using ProtoBuf;using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MessageContract{  [ProtoContract]  public class ResMsgContract  {    [ProtoMember(1)]    public string Message;    public ResMsgContract() { }    public ResMsgContract(string message)    {      this.Message = message;    }  }}

注意:

使用這個框架要配合谷歌的protobuf   要選好版本.本人沒重復測試最高版本,因為在調試登錄過程中出現別的問題過程中,也順改了protobuf 的版本,至今未測試最高版本是否存在兼容問題.本人成功的使用的是2.0.0.668

    protobuf簡介protobuf是google提供的一個開源序列化框架,類似于XML,JSON這樣的數據表示語言,其最大的特點是基于二進制,因此比傳統的XML表示高效短小

vs nuget添加方式

c#,networkcomms,3.0實現模擬登陸

輸入

c#,networkcomms,3.0實現模擬登陸

版本選擇自己指定一下,加大項目的契約類里邊.這是自己定義傳輸對象的方式.

c#,networkcomms,3.0實現模擬登陸

 結果:

c#,networkcomms,3.0實現模擬登陸

以上所述是小編給大家介紹的C# networkcomms 3.0實現模擬登陸總結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!

 

注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
4438全国成人免费| 中文字幕亚洲在线| 国产啪精品视频| 亚洲天堂av女优| 在线精品国产欧美| 亚洲天堂男人的天堂| 亚洲精品一区二区网址| 久久91精品国产91久久跳| 91精品国产自产在线观看永久| 欧美国产亚洲精品久久久8v| 欧美一区二区影院| 国产精品色婷婷视频| 欧美一区二区三区图| 亚洲国产精品专区久久| 92看片淫黄大片看国产片| 国产成人亚洲综合91| 伊是香蕉大人久久| 日韩av电影在线播放| 欧美小视频在线观看| 国产婷婷成人久久av免费高清| 日韩黄在线观看| 欧美成aaa人片在线观看蜜臀| 在线观看视频99| 欧洲精品在线视频| 国内精品久久久久久中文字幕| 成人日韩av在线| 国产精品一香蕉国产线看观看| 日本sm极度另类视频| 欧美电影电视剧在线观看| 国产精品视频自在线| 亚洲视频视频在线| 欧美大片网站在线观看| 一本色道久久88亚洲综合88| 亚洲国产第一页| 欧美成人全部免费| 亚洲日本成人女熟在线观看| 精品国产一区二区三区久久狼5月| 日韩av免费网站| 深夜福利91大全| 国产97色在线|日韩| 日韩高清电影免费观看完整版| 亚洲最大av在线| 国产一区二区美女视频| 欧美性生交大片免费| 久久久久久久久久亚洲| 欧美性少妇18aaaa视频| 亚洲国模精品私拍| 日韩在线播放视频| 欧美夫妻性生活视频| 亚洲а∨天堂久久精品喷水| 欧美一级淫片aaaaaaa视频| 国内精品一区二区三区四区| 亚洲国模精品私拍| 日韩中文字幕精品视频| 亚洲影院色在线观看免费| 亚洲影院色在线观看免费| 日韩福利在线播放| 亚洲少妇中文在线| 亚洲一区二区三区视频| 欧美精品videos另类日本| 蜜臀久久99精品久久久久久宅男| 亚洲国产中文字幕在线观看| 日韩有码片在线观看| 欧美极品少妇全裸体| 日韩在线欧美在线| 精品亚洲一区二区三区| 久久国产一区二区三区| 韩国视频理论视频久久| 最新69国产成人精品视频免费| 日本高清久久天堂| 欧美一级在线播放| 久久成人综合视频| 国产精品99蜜臀久久不卡二区| 岛国av一区二区在线在线观看| 精品国产依人香蕉在线精品| 青青久久av北条麻妃海外网| 久久久噜噜噜久久久| 久久在精品线影院精品国产| 欧美日韩免费观看中文| 91久久国产精品| 欧美激情精品久久久久久蜜臀| 欧美性受xxxx白人性爽| 欧美日韩黄色大片| 国产精品日韩欧美| 国内精品久久久久久影视8| 成人免费视频在线观看超级碰| 国产精品一区二区在线| 亚洲人成在线播放| 久久久久久久网站| 日韩中文字幕欧美| 九九精品在线视频| 国产精品第1页| 亚洲自拍偷拍网址| 国产成人精品视频在线观看| 欧美一区二区三区四区在线| 一区二区在线免费视频| 久久久久国色av免费观看性色| 国产精品18久久久久久首页狼| 懂色av一区二区三区| 欧美激情国内偷拍| 国产精品99久久久久久www| 亚洲成人激情在线观看| 中文字幕av一区二区三区谷原希美| 在线电影av不卡网址| 色综合91久久精品中文字幕| 日韩欧美国产免费播放| 日本不卡视频在线播放| 国产丝袜视频一区| 91九色国产社区在线观看| 热99在线视频| 国产日韩欧美黄色| 久久国产精彩视频| 久久综合88中文色鬼| 热99在线视频| 亚洲免费视频在线观看| 深夜福利一区二区| 国产亚洲精品久久| 国产欧美va欧美va香蕉在线| 九九热最新视频//这里只有精品| 91手机视频在线观看| 国产综合在线视频| 日韩av影视综合网| 久久天堂av综合合色| 九九九久久国产免费| 性视频1819p久久| 成人网在线视频| 欧美日韩美女视频| 91夜夜未满十八勿入爽爽影院| 国产一区二区三区毛片| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲天天在线日亚洲洲精| 国产精品美女在线观看| 国产一区二区三区在线| 日韩精品福利网站| 久久精品视频免费播放| 色哟哟亚洲精品一区二区| 欧美丰满老妇厨房牲生活| 久久欧美在线电影| 九九综合九九综合| 国产精品你懂得| 成人午夜小视频| 欧美精品videos| 96精品久久久久中文字幕| 日本成人精品在线| 精品电影在线观看| 日本成人精品在线| 精品亚洲永久免费精品| 亚洲天堂开心观看| 欧美做爰性生交视频| 国产精品成人一区二区| 日韩在线视频二区| 久久久精品中文字幕| 日韩av一区二区在线| y97精品国产97久久久久久| 欧美精品videossex88| 久久久久久久国产精品| 91精品国产99| www欧美xxxx| 91网在线免费观看| 国产精品一区专区欧美日韩| 日韩成人xxxx| 日韩女优人人人人射在线视频| 91性高湖久久久久久久久_久久99| 成人妇女免费播放久久久|