c#中networkcomms3.0实现模拟登陆的方法

  介绍

小编给大家分享一下c#中networkcomms3.0实现模拟登陆的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

最近项目需要做一个客户查询状态系统,当前上位机缺少服务功能,于是找到了networkcomms开源框架,作为项目使用。

最新版networkcomms下载地址:https://github.com/MarcFletcher/NetworkComms.Net

下载直接vs打开

新建服务器端

 C #中networkcomms3.0实现模拟登陆的方法

;
  使用NetworkCommsDotNet;
  使用NetworkCommsDotNet.Connections;
  使用NetworkCommsDotNet.Connections.TCP;
  使用NetworkCommsDotNet.DPSBase;
  使用系统;
  使用System.Collections.Generic;
  使用System.ComponentModel;
  使用System.Data;
  使用System.Drawing;
  使用来;
  使用System.Net;
  使用text;
  使用System.Windows.Forms;
  名称空间的应用
  {
  公共部分类MaiForm:形式
  {
  公共MaiForm ()
  {
  InitializeComponent ();
  }
  SendReceiveOptions aboveOptions=new SendReceiveOptions (DPSManager.GetDataSerializer(),空,空);
  私人空间button1_Click(对象发送方,EventArgs e)
  {//服务器开始监听客户端的请求
  Connection.StartListening (ConnectionType。TCP、新IPEndPoint (IPAddress.Parse (txtIP.Text) int.Parse (txtPort.Text)));//服务器开始监听客户端的请求//IPEndPoint thePoint=new IPEndPoint (IPAddress.Parse (txtIP.Text) int.Parse (txtPort.Text));//TCPConnection。StartListening(点出,假);
  button1。文本=凹嗵小?
  button1。启用=false;//button1。文本=凹嗵小?//button1。启用=false;//此方法中包含服务器具体的处理方法。
  StartListening ();
  }
  私人空间StartListening ()
  {//开启日志记录//配置日志记录器//ILogger实例记录器=new LiteLogger (LiteLogger.LogMode。ConsoleAndLogFile,“ServerLogFile_"+ NetworkComms。NetworkIdentifier +“.txt");//NetworkComms.EnableLogging (logger);//禁用日志记录服务器端正式使用时,赢禁用日志记录
  NetworkComms.DisableLogging ();//服务器端处理收到的消息//为简单起,见此示例中我们只处理字符类型的信息,也返回字符类型的信息。//处理的信息可以使自定义类,具体见下一个演示
  NetworkComms.AppendGlobalIncomingPacketHandler (“ReqLogin" IncomingLoginRequest);
  }//处理某个具体的请求
  私人空间IncomingLoginRequest (PacketHeader头、连接连接,LoginContract LoginContract)
  {
  试一试
  {
  字符串resMsg=?“;//为了简单,这里不调用数据库,而是模拟一下登录
  如果(loginContract。用户id==?000”;,,loginContract。密码==?23“)
  resMsg=暗锹汲晒Α?
  其他的
  resMsg=坝没苈氪砦蟆?//把返回结果写入到契约类中,后面返回给客户端//ResMsgContract合同=new ResMsgContract ();//合同。消息=resMsg;//connection.SendObject (“ResLogin"、合同);
  ResMsgContract合同=new ResMsgContract ();
  合同。消息=resMsg;
  connection.SendObject (“ResLogin"、合同);
  }
  捕获(异常交货)
  {//LogTools。LogException(例,“IncomingMsgHandle");
  }
  }
  }
  }

在别的帮助中往往少了这行:导致出现客户端发送时,类型打包出现问题。这行代码是客户端服务器两端都要加上的,是指定传输方式

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

就是这个报错了

 C #中networkcomms3.0实现模拟登陆的方法

一下是客户端

 C #中networkcomms3.0实现模拟登陆的方法

;   使用NetworkCommsDotNet;   使用NetworkCommsDotNet.Connections;   使用NetworkCommsDotNet.Connections.TCP;   使用NetworkCommsDotNet.DPSBase;   使用系统;   使用System.Collections.Generic;   使用System.ComponentModel;   使用System.Data;   使用System.Drawing;   使用来;   使用text;   使用System.Windows.Forms;   名称空间AppClient   {   公共部分类MainForm:形式   {   公共MainForm ()   {   InitializeComponent ();   }//连接信息对象   公共ConnectionInfo connInfo=零;//连接对象   连接newTcpConnection;   SendReceiveOptions aboveOptions=new SendReceiveOptions (DPSManager.GetDataSerializer

c#中networkcomms3.0实现模拟登陆的方法