private const int OutTimeConn = 10000; //连接时间超时 5秒 public BaseResponse SendMessage(BaseRequest bmr, string WebsiteCode, string TellerCode) { TimeoutObject.Reset(); BaseResponse result = null; _socket.BeginConnect(new IPEndPoint(IPAddress.Parse(RemoteIP), RemotePort), delegate(IAsyncResult ar) { TimeoutObject.Set(); }, _socket); if (TimeoutObject.WaitOne(OutTimeConn, false)) { _socket.ReceiveTimeout = OutTime; _socket.SendTimeout = OutTime; string str = bmr.ObjectToMessage(); _socket.Send(Encod.GetBytes(str)); len = _socket.Receive(buffer); if (len > 0) { string strbuff = Encod.GetString(buffer); switch (bmr.BusinessCode) { case "01": result = new Response01(buffer); break; case "02": result = new Response02(buffer); break; case "03": result = new Response03(buffer); break; case "04": result = new Response04(buffer); break; case "05": result = new Response05(buffer); break; case "06": result = new Response06(buffer); break; case "07": result = new Response07(buffer); break; case "08": result = new Response08(buffer); break; case "09": result = new Response09(buffer); break; default: return(null); } } bmr.SaveMessage(WebsiteCode, TellerCode); if (result != null) { result.BankCode = bmr.BankCode; result.SaveMessage(WebsiteCode, TellerCode); } return(result); } else { if (_socket.Connected) { _socket.Shutdown(SocketShutdown.Both); _socket.Close(); } throw new Exception("所提供的服务器连接超时"); } }
/// <summary> /// 发起对账 /// </summary> private void SendBillExecute() { if (FileName == null) { VMHelp.ShowMessage("文件未生成成功", false); return; } if (!client.UploadState) { VMHelp.ShowMessage("文件未上传成功", false); return; } Response07 response = new Response07(); Request07 request = new Request07(); request.BankCode = VMHelp.BankCode; request.FileName = FileName; request.BusinessCode = Tools.PublicData.InterestRecord; //ObservableCollection<SeasonInterest> temp = GetBalance();//获得平台余额 decimal PlatformBalance = 0; foreach (InterestBillCheck item in this.Models) { PlatformBalance += item.TradeFundAmount.Value; } request.PlatInterestAmount = PlatformBalance;//平台利息 BillCheckWindowVm vm = new BillCheckWindowVm(); BillCheckWindow bkwindow = new BillCheckWindow(vm); bkwindow.Tag = "利息对账"; if (!(bool)bkwindow.ShowDialog()) { return; } request.RecordCount = this.Models.Count; request.RealInterestAmount = vm.AccountBalance.Value;//实际利息 try { response = SendMessage <Response07>(request, VMHelp.PointCode, VMHelp.UserCode); } catch (Exception e) { System.Windows.MessageBox.Show(e.Message); return; } if (response.ReturnCode == Tools.PublicData.ResponseSuccess) { VMHelp.ShowMessage("对账成功", true); } else { ; VMHelp.ShowMessage(Tools.HelpClass.Current.MsgDIC[response.ReturnCode], false); } }