SerializationRequestProcessed.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using HPSocketCS.Extended;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. namespace LYFZ.Network.TCPNetworkServer
  7. {
  8. /// <summary>
  9. /// 请求指令
  10. /// </summary>
  11. public enum SerializerRequestCommand
  12. {
  13. /// <summary>
  14. /// 测试指令
  15. /// </summary>
  16. TestCommand = 0,
  17. FTPCommand = 1
  18. }
  19. /// <summary>
  20. /// 此类已过期 不建义使用
  21. /// </summary>
  22. public class SerializationRequestProcessed
  23. {
  24. public SerializationRequestProcessed() {
  25. }
  26. /// <summary>
  27. /// 服务器端接收客户端发送的Serialization数据请求并处理返回结果
  28. /// </summary>
  29. /// <param name="hp_Server">网络连接对象</param>
  30. /// <param name="header">协议头</param>
  31. /// <param name="connId">连接ID</param>
  32. /// <param name="bytes">收到的数据</param>
  33. public static bool SerializationDataRequestProcessed(HPSocketCS.TcpPackServer hp_Server, TcpHeadInfo header, IntPtr connId, byte[] bytes)
  34. {
  35. bool ret = false;
  36. TransferRequestCommand Command = (TransferRequestCommand)Convert.ToInt32(header.RequestCommand);
  37. ReturnData returnData;
  38. try
  39. {
  40. RequestData requestData = (RequestData)DataSetSerializerDeserialize.ObjectDeserializeDecompress(bytes);
  41. TCP_ClientConnectInfo cInfo = new TCP_ClientConnectInfo(connId.ToInt32(), header);
  42. try
  43. {
  44. // LYFZ.BLL.BLL_FileLogs.WriteMainLogs(String.Format("接收到命令请求{0},参数{1}", Command.ToString(), recprotocol.Content));
  45. if (Command == TransferRequestCommand.SerializationData)
  46. {
  47. returnData = SerializerRequestProcessed(cInfo, requestData);
  48. }
  49. else
  50. {
  51. returnData = new ReturnData("非法Serializer请求指令,服务器拒绝执行...");
  52. }
  53. }
  54. catch (Exception ex)
  55. {
  56. returnData = new ReturnData("处理Serializer请求指令时出错:" + ex.Message);
  57. }
  58. // LYFZ.BLL.BLL_FileLogs.WriteMainLogs("服务器端返回信息:" + returnProtocol.Content.Trim());
  59. if (returnData == null)
  60. {
  61. returnData = new ReturnData("Serializer请求指令失败,没有返回有效的结果");
  62. }
  63. returnData.ServerStartTimeStamp = LYFZ.Network.TCPNetworkServer.TCP_NetworkServer.ServerStartTimeStamp;
  64. byte[] sendBytes = DataSetSerializerDeserialize.ObjectSerializerCompressionRetBytes(returnData);
  65. ret = hp_Server.AutoUnpackingAndSend(connId, sendBytes, header.TransportID, DataType.Serialization, Command);
  66. System.GC.Collect();
  67. }
  68. catch (Exception ex)
  69. {
  70. try
  71. {
  72. returnData = new ReturnData("服务器处理客户端Serializer请求时出错:" + ex.Message);
  73. returnData.ServerStartTimeStamp = LYFZ.Network.TCPNetworkServer.TCP_NetworkServer.ServerStartTimeStamp;
  74. SystemFileLogs.WriteLogs(returnData.ReturnMessage);
  75. byte[] sendBytes = DataSetSerializerDeserialize.ObjectSerializerCompressionRetBytes(returnData);
  76. ret = hp_Server.AutoUnpackingAndSend(connId, sendBytes, header.TransportID, DataType.Serialization, Command);
  77. }
  78. catch
  79. {
  80. }
  81. }
  82. return ret;
  83. }
  84. /// <summary>
  85. /// 处理SQL命令请求 并返回请求结果
  86. /// </summary>
  87. /// <param name="cInfo"></param>
  88. /// <param name="requestData"></param>
  89. /// <returns></returns>
  90. static ReturnData SerializerRequestProcessed(TCP_ClientConnectInfo cInfo, RequestData requestData)
  91. {
  92. ReturnData returnData = null;
  93. SerializerRequestCommand rCommand = (SerializerRequestCommand)requestData.RequestCommand;
  94. // requestData.AttachedMessage
  95. switch (rCommand)
  96. {
  97. case SerializerRequestCommand.TestCommand:
  98. string jsondata = "1111";
  99. byte[] jsonBytes = HPSocketCS.Extended.DataSetSerializerDeserialize.ObjectSerializerRetBytes(jsondata);
  100. returnData = new ReturnData("请求指令成功 ~O~",0);
  101. returnData.DataByte = jsonBytes;
  102. returnData.AttachedMessage = "Serializer测试请求指令成功 ~O~ 收到的附加信息为:" + requestData.AttachedMessage;
  103. break;
  104. }
  105. return returnData;
  106. }
  107. }
  108. }