HandleResult OnReceive(IntPtr connId, byte[] bytes) { // 数据到达了 try { // 获取附加数据 var clientInfo = server.GetExtra <ClientInfo>(connId); if (clientInfo != null) { // clientInfo 就是accept里传入的附加数据了 AddMsg(string.Format(" > [{0},OnReceive] -> {1}:{2} ({3} bytes)", clientInfo.ConnId, clientInfo.IpAddress, clientInfo.Port, bytes.Length)); } else { AddMsg(string.Format(" > [{0},OnReceive] -> ({1} bytes)", connId, bytes.Length)); } if (server.Send(connId, bytes, bytes.Length)) { return(HandleResult.Ok); } return(HandleResult.Error); } catch (Exception) { return(HandleResult.Ignore); } }
//注意:只传递SendData数据 private HPSocketCS.HandleResult Server_OnReceive(IntPtr connId, byte[] bytes) { // 数据到达了 try { // 获取附加数据 var clientInfo = server.GetExtra <ClientInfo>(connId); if (clientInfo != null) { // clientInfo 就是accept里传入的附加数据了 //Write(string.Format(" > [{0},OnReceive] -> {1}:{2} ({3} bytes)", clientInfo.ConnId, clientInfo.IpAddress, clientInfo.Port, bytes.Length)); SendData sendData = server.BytesToObject(bytes) as SendData; switch (sendData.ActionCode) { case ActionCodeBase.ThroughDoor: if (sendData.IORInfoL.Count > 0) { this.Invoke(new Action <ClientInfo, SendData>(ReSendToClient), clientInfo, sendData); dal.RecordInOut(sendData.IORInfoL[0]); if (sendData.IORInfoL[0].ThroughWay == "ThroughWay_C") { if (sendData.PInfoL.Count > 0) { dal.RegisterPersonnelInfo(sendData.PInfoL[0]); } if (sendData.FFInfoL.Count > 0) { dal.RegisterFaceFeature(sendData.FFInfoL[0].Feature, sendData.FFInfoL[0].IDCard); } } } break; case ActionCodeBase.UploadData_Success: //收到数据上传成功指令,则下发数据,各端实时同步最新数据 clientInfo.DBInfo = sendData.DBInfo; List <ClientInfo> list = GetClientInfoList(); //在线客户端列表 bll.DataSync(list); break; case ActionCodeBase.ReSendPicture: //发送画面 =》 监视窗口 this.Invoke(new Action <ClientInfo, SendData>(ReSendToClient), clientInfo, sendData); break; } //Write(string.Format(" > [{0},OnReceive] -> SendData({1},{2})", clientInfo.ConnId, sendData.Order, sendData.Message)); } else { LogHelper.logRecord(string.Format(" > [{0},OnReceive] -> ({1} bytes)", connId, bytes.Length)); } return(HandleResult.Ok); } catch (Exception) { return(HandleResult.Ignore); } }