SerializerDataProcessed.cs 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace HPSocketCS.Extended
  6. {
  7. /// <summary>
  8. /// 序例化数传输处理
  9. /// </summary>
  10. public class SerializerDataProcessed
  11. {
  12. public SerializerDataProcessed()
  13. {
  14. }
  15. /// <summary>
  16. /// 发送SerializerData数据库请求命令到服务器并返回请求结果
  17. /// </summary>
  18. /// <param name="requestData">请求的SerializerData命令数据类</param>
  19. /// <param name="millisecondsTimeout"></param>
  20. /// <returns></returns>
  21. [Obsolete("此方法已过时,请不要在其它地方使用", false)]
  22. public static HPSocketCS.Extended.ReturnData HP_SendSerializerCommandToServer(HPSocketCS.Extended.RequestData requestData, int millisecondsTimeout = 1000*90)
  23. {
  24. return HP_SendSerializerCommandToServer(HP_SQLHelper.HpClient, requestData, millisecondsTimeout);
  25. }
  26. /// <summary>
  27. /// 发送SerializerData数据库请求命令到服务器并返回请求结果
  28. /// </summary>
  29. /// <param name="_Client">网络连接对象</param>
  30. /// <param name="requestData">请求的SerializerData命令数据类</param>
  31. /// <param name="millisecondsTimeout"></param>
  32. /// <returns></returns>
  33. public static HPSocketCS.Extended.ReturnData HP_SendSerializerCommandToServer(HPSocketCS.TcpPackClient _Client, HPSocketCS.Extended.RequestData requestData, int millisecondsTimeout = 1000*90)
  34. {
  35. HPSocketCS.Extended.ReturnData retData = null;
  36. if (_Client.State == ServiceState.Stoped || _Client.State == ServiceState.Stoping)
  37. {
  38. _Client.Connetion();
  39. System.Threading.Thread.Sleep(1000);
  40. }
  41. if (_Client.State == ServiceState.Started)
  42. {
  43. try
  44. {
  45. byte[] tempSendBuffer = HPSocketCS.Extended.DataSetSerializerDeserialize.ObjectSerializerCompressionRetBytes(requestData);
  46. using (System.IO.MemoryStream retMstream = _Client.AutoUnpackingSendAndReturnResult(tempSendBuffer, HPSocketCS.Extended.DataType.Serialization, HPSocketCS.Extended.TransferRequestCommand.SerializationData, millisecondsTimeout))
  47. {
  48. if (retMstream != null && retMstream.Length > 0)
  49. {
  50. retData = (HPSocketCS.Extended.ReturnData)HPSocketCS.Extended.DataSetSerializerDeserialize.ObjectDeserializeDecompress(retMstream.GetBuffer());
  51. retData.DataSize = retMstream.Length;
  52. }
  53. if (retMstream != null)
  54. {
  55. retMstream.Close();
  56. }
  57. }
  58. }
  59. catch (Exception ex)
  60. {
  61. retData = new HPSocketCS.Extended.ReturnData("Serializer请求处理出错:" + ex.Message);
  62. }
  63. }
  64. else
  65. {
  66. return new ReturnData("Serializer指令时失败,未连接到服器或网络连接已断开,请检查网络环境。", requestData.RequestCommand);
  67. }
  68. if ( retData == null)
  69. return new ReturnData("Serializer指令时失败,未连接到服器或网络连接已断开,请检查网络环境。", requestData.RequestCommand);
  70. retData.RequestCommand = requestData.RequestCommand;
  71. return retData;
  72. }
  73. }
  74. }