介绍
小编给大家分享一下c#中networkcomms3.0实现模拟登陆的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
最近项目需要做一个客户查询状态系统,当前上位机缺少服务功能,于是找到了networkcomms开源框架,作为项目使用。
最新版networkcomms下载地址:https://github.com/MarcFletcher/NetworkComms.Net
下载直接vs打开
新建服务器端
; 使用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);
就是这个报错了
一下是客户端
; 使用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.GetDataSerializerc#中networkcomms3.0实现模拟登陆的方法