123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.IO;
- using System.Net;
- using System.Net.Sockets;
- using System.Threading;
- using LYFZ.Network.EnumerateLibrary;
- namespace LYFZ.Network
- {
- /// <summary>
- /// 远程数据处理类 被动模式
- /// </summary>
- public class TCP_RemoteDataHandlerPassiveMode
- {
-
- #region 服务端接收到客户端指令后的处理程序
- public TCP_RemoteDataHandlerPassiveMode()
- {
- }
- HPSocketCS.TcpPackClient hpClient;
- /// <summary>
- /// 新的网络对象
- /// </summary>
- public HPSocketCS.TcpPackClient HpClient
- {
- get { return hpClient; }
- set { hpClient = value; }
- }
- public TCP_RemoteDataHandlerPassiveMode(HPSocketCS.TcpPackClient client)
- {
- this.hpClient = client;
- }
- static string _ServerBasePath = LYFZ.WinAPI.CustomPublicMethod.BasePath;
- /// <summary>
- /// 服务器端根目录
- /// </summary>
- public static string ServerBasePath
- {
- get { return _ServerBasePath; }
- set { _ServerBasePath = value; }
- }
- /// <summary>
- /// 获取客户端发送的参数
- /// </summary>
- /// <param name="ParametersString"></param>
- /// <returns></returns>
- string[] GetParameters(string ParametersString)
- {
- string[] mParameters = ParametersString.Split('|');
- return mParameters;
- }
- static string BackupRecordsDateDay = "";
- static string BackupRecordsStringText = "";
- /// <summary>
- /// 获取备份记录
- /// </summary>
- /// <param name="protocol"></param>
- /// <returns></returns>
- public TCP_FileProtocol GetBackupRecords(TCP_FileProtocol protocol)
- {
- TCP_FileProtocol returnProtocol = new TCP_FileProtocol();
- returnProtocol = GetToClientFileProtocol("GetOK&"+false.ToString());
- if (BackupRecordsDateDay == DateTime.Now.ToString("yyyy-MM-dd"))
- {
- returnProtocol = GetToClientFileProtocol(BackupRecordsStringText);
- }
- else
- {
- try
- {
- string BackupRecordsDir = LYFZ.WinAPI.CustomPublicMethod.GetFullDirectoryPath(LYFZ.WinAPI.CustomPublicMethod.BasePath) + "DB\\BackupRecords\\";
- string PhotoBackupRecordsPath = BackupRecordsDir + "PhotoBackupRecords.txt";//相片
-
- //相片备份记录
- string PhotoBackupRecords = "";
- string PhotoBackupRecordsText = "";
- if (System.IO.File.Exists(PhotoBackupRecordsPath))
- {
- PhotoBackupRecordsText = System.IO.File.ReadAllText(PhotoBackupRecordsPath, Encoding.UTF8);
- }
- bool isBackupOK = true;
- for (int i = 1; i <= 7; i++)
- {
- string tempBackupText = "OK|";
- if (PhotoBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|原片|备份成功|"))
- {
- if (PhotoBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|原片|备份成功|已备份到:"))
- {
- tempBackupText = "OK|";
- }
- else
- {
- tempBackupText = "No|";
- }
- PhotoBackupRecords += DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|原片|备份成功|" + tempBackupText + "#";
-
- }
- else
- {
- if (i == 1)
- {
- isBackupOK = false;
- }
- }
- if (PhotoBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|初修片|备份成功|"))
- {
- if (PhotoBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|初修片|备份成功|已备份到:"))
- {
- tempBackupText = "OK|";
- }
- else
- {
- tempBackupText = "No|";
- }
- PhotoBackupRecords += DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|初修片|备份成功|" + tempBackupText + "#";
-
- }
- else
- {
- if (i == 1)
- {
- isBackupOK = false;
- }
- }
- if (PhotoBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|精修片|备份成功|"))
- {
- if (PhotoBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|精修片|备份成功|已备份到:"))
- {
- tempBackupText = "OK|";
- }
- else
- {
- tempBackupText = "No|";
- }
- PhotoBackupRecords += DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|精修片|备份成功|" + tempBackupText + "#";
-
- }
- else
- {
- if (i == 1)
- {
- isBackupOK = false;
- }
- }
- if (PhotoBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|设计片|备份成功|"))
- {
- if (PhotoBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|设计片|备份成功|已备份到:"))
- {
- tempBackupText = "OK|";
- }
- else
- {
- tempBackupText = "No|";
- }
- PhotoBackupRecords += DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|设计片|备份成功|" + tempBackupText + "#";
-
- }
- else
- {
- if (i == 1)
- {
- isBackupOK = false;
- }
- }
- }
- returnProtocol = GetToClientFileProtocol("GetOK&"+isBackupOK.ToString() + "&" + PhotoBackupRecords);
- BackupRecordsDateDay = DateTime.Now.ToString("yyyy-MM-dd");
- BackupRecordsStringText = returnProtocol.Content;
- }
- catch { }
- }
- return returnProtocol;
- }
- static string MainShopBackupRecordsDateDay = "";
- static string MainShopBackupRecordsStringText = "";
- /// <summary>
- /// 获取总店数据库备份记录
- /// </summary>
- /// <param name="protocol"></param>
- /// <returns></returns>
- public TCP_FileProtocol GetMainShopBackupRecords(TCP_FileProtocol protocol)
- {
- TCP_FileProtocol returnProtocol = new TCP_FileProtocol();
- returnProtocol = GetToClientFileProtocol("GetOK&" + false.ToString());
- /* if (MainShopBackupRecordsDateDay == DateTime.Now.ToString("yyyy-MM-dd"))
- {
- returnProtocol = GetToClientFileProtocol(MainShopBackupRecordsStringText);
- }
- else*/
- {
- try
- {
-
- string BackupRecordsDir = LYFZ.WinAPI.CustomPublicMethod.GetFullDirectoryPath(LYFZ.WinAPI.CustomPublicMethod.BasePath) + "DB\\BackupRecords\\";
- string DataBaseBackupRecordsPath = BackupRecordsDir + "DataBaseBackupRecords.txt";//数据库
- string DataFileBackupRecordsPath = BackupRecordsDir + "DataFileBackupRecords.txt";//资料文件
- //资料文件备份记录
- string DataFileBackupRecords = "";
- string DataFileBackupRecordsText = "";
- if (System.IO.File.Exists(DataFileBackupRecordsPath))
- {
- DataFileBackupRecordsText = System.IO.File.ReadAllText(DataFileBackupRecordsPath, Encoding.UTF8);
- }
-
- //数据库备份记录信息
- string DataBaseBackupRecords = "";
- string DataBaseBackupRecordsText = "";
- if (System.IO.File.Exists(DataBaseBackupRecordsPath))
- {
- DataBaseBackupRecordsText = System.IO.File.ReadAllText(DataBaseBackupRecordsPath, Encoding.UTF8);
- }
-
- bool isBackupOK = true;
- for (int i = 1; i <= 7; i++)
- {
- if (DataBaseBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|数据库|备份成功|"))
- {
- DataBaseBackupRecords += DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|数据库|备份成功|#";
- }
- else
- {
- if (i == 1)
- {
- isBackupOK = false;
- }
- }
- if (DataFileBackupRecordsText.Contains(DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|资料文件|备份成功|"))
- {
- DataFileBackupRecords += DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd") + "|资料文件|备份成功|#";
- }
- else
- {
- if (i == 1)
- {
- isBackupOK = false;
- }
- }
- }
- returnProtocol = GetToClientFileProtocol("GetOK&" + isBackupOK.ToString() + "&" + DataBaseBackupRecords+"&" + DataFileBackupRecords);
- MainShopBackupRecordsDateDay = DateTime.Now.ToString("yyyy-MM-dd");
- MainShopBackupRecordsStringText = returnProtocol.Content;
- }
- catch { }
- }
- return returnProtocol;
- }
-
-
-
- /// <summary>
- /// 获取返回到客户端的TCP_FileProtocol对象
- /// </summary>
- /// <param name="value">要返回的内容</param>
- /// <param name="extraInfo">附加信息</param>
- /// <returns></returns>
- public TCP_FileProtocol GetToClientFileProtocol(string value, string extraInfo = "")
- {
- return new Network.TCP_FileProtocol(value, extraInfo);
- }
- #region 服务器端命令处理方法
-
- public static string _UserAvatarSaveFilePath = "";
- /// <summary>
- /// 服务器端用户头像保存目录
- /// </summary>
- public static string UserAvatarSaveFilePath
- {
- get { return ServerBasePath + "\\Resources\\Avatar\\User\\"; }
- set { _UserAvatarSaveFilePath = value; }
- }
- /// <summary>
- /// 删除服务器上的文件
- /// </summary>
- /// <returns></returns>
- public TCP_FileProtocol DeleteFile(TCP_FileProtocol protocol)
- {
- TCP_FileProtocol returnProtocol = new TCP_FileProtocol();
- string[] tempValues = protocol.Content.Split('?');
- string[] delFiles = tempValues[0].Split('|');
- //服务器端文件路径
- string saveFilePath = "";
- try
- {
- foreach (string delfile in delFiles)
- {
- if (delfile.Trim().Length > 0)
- {
- saveFilePath = delfile;
- if (delfile.Contains(":"))
- {
- saveFilePath = delfile;
- }
- else
- {
- saveFilePath = ServerBasePath + "\\" + delfile.TrimStart('\\');
- }
- if (System.IO.File.Exists(saveFilePath))
- {
- System.IO.File.Delete(saveFilePath);
- }
- }
- }
- returnProtocol = GetToClientFileProtocol("删除成功");
- // returnProtocol = GetToClientFileProtocol("删除失败,服务器上找不到“" + protocol.FileName + "”文件!");
- }
- catch (Exception ex)
- {
- returnProtocol = GetToClientFileProtocol("删除失败,原因:“" + ex.Message + "”");
- }
- return returnProtocol;
- }
- /// <summary>
- /// 获取服务器上指定目录下的文件列表
- /// </summary>
- /// <returns></returns>
- public TCP_FileProtocol GeTFileList(TCP_FileProtocol protocol)
- {
- TCP_FileProtocol returnProtocol = new TCP_FileProtocol();
- string[] Parameters = protocol.Content.Split('|');
- if (Parameters.Length >= 3)
- {
- string dirPath = Parameters[0];
- if (!dirPath.Contains(":"))
- {
- dirPath = ServerBasePath + "\\" + dirPath.TrimStart('\\');
- }
- bool isSearchSubfolder = false;//是否搜索子目录
- try
- {
- isSearchSubfolder = Convert.ToBoolean(Parameters[1]);
- }
- catch { }
- string searchPattern = Parameters[2];
-
- try
- {
- if (System.IO.Directory.Exists(dirPath))
- {
- string[] retFiles = null;
- if (isSearchSubfolder)
- {
- retFiles = System.IO.Directory.GetFiles(dirPath, searchPattern, SearchOption.AllDirectories);
- }
- else
- {
- retFiles = System.IO.Directory.GetFiles(dirPath, searchPattern, SearchOption.TopDirectoryOnly);
- }
- StringBuilder retFilesString = new StringBuilder();
- foreach (string file in retFiles)
- {
- retFilesString.Append(file.Replace(ServerBasePath, "") + "|");
- }
- returnProtocol = GetToClientFileProtocol("获取成功", retFilesString.ToString());
- retFilesString.Clear();
- }
- else
- {
- returnProtocol = GetToClientFileProtocol("指定的目录“" + dirPath + "”在服务器上不存在。");
- }
- }
- catch (Exception ex)
- {
- returnProtocol = GetToClientFileProtocol("获取失败,原因:“" + ex.Message + "”");
- }
-
- }
- else
- {
- returnProtocol = GetToClientFileProtocol("参数不正确");
- }
- return returnProtocol;
- }
- /// <summary>
- /// 获取服务器上指定目录下的目录列表
- /// </summary>
- /// <returns></returns>
- public TCP_FileProtocol GetDirectoryList(TCP_FileProtocol protocol)
- {
- TCP_FileProtocol returnProtocol = new TCP_FileProtocol();
- string[] Parameters = protocol.Content.Split('|');
- if (Parameters.Length >= 3)
- {
- string dirPath = Parameters[0];
- if (!dirPath.Contains(":"))
- {
- dirPath = ServerBasePath + "\\" + dirPath.TrimStart('\\');
- }
- bool isSearchSubfolder = false;//是否搜索子目录
- try
- {
- isSearchSubfolder = Convert.ToBoolean(Parameters[1]);
- }
- catch { }
- string searchPattern = Parameters[2];
-
- try
- {
- if (System.IO.Directory.Exists(dirPath))
- {
- string[] retDirs = null;
- if (isSearchSubfolder)
- {
- retDirs = System.IO.Directory.GetDirectories(dirPath, searchPattern, SearchOption.AllDirectories);
- }
- else
- {
- retDirs = System.IO.Directory.GetDirectories(dirPath, searchPattern, SearchOption.TopDirectoryOnly);
- }
- StringBuilder retDirString = new StringBuilder();
- foreach (string dir in retDirs)
- {
- retDirString.Append(dir.Replace(ServerBasePath, "") + "|");
- }
- returnProtocol = GetToClientFileProtocol("获取成功", retDirString.ToString());
- retDirString.Clear();
- }
- else
- {
- returnProtocol = GetToClientFileProtocol("获取失败,指定的目录“" + dirPath + "”在服务器上不存在。");
- }
- }
- catch (Exception ex)
- {
- returnProtocol = GetToClientFileProtocol("获取失败,原因:“" + ex.Message + "”");
- }
-
- }
- else
- {
- returnProtocol = GetToClientFileProtocol("获取失败,参数不正确");
- }
- return returnProtocol;
- }
- /// <summary>
- /// 删除服务器上的目录
- /// </summary>
- /// <returns></returns>
- public TCP_FileProtocol DeleteDirectory(TCP_FileProtocol protocol)
- {
- TCP_FileProtocol returnProtocol = new TCP_FileProtocol();
- string[] Parameters = protocol.Content.Split('|');
- if (Parameters.Length >= 2)
- {
- string dirPath = Parameters[0];
-
- if (!dirPath.Contains(":"))
- {
- dirPath = ServerBasePath + "\\" + dirPath.TrimStart('\\');
- }
- bool isDelAllFiles = false;//是否删除目录下的所以文件
- try
- {
- isDelAllFiles = Convert.ToBoolean(Parameters[1]);
- }
- catch { }
-
- try
- {
- if (System.IO.Directory.Exists(dirPath))
- {
- try
- {
- System.IO.Directory.Delete(dirPath);
- returnProtocol = GetToClientFileProtocol("删除成功");
- }
- catch (Exception ex)
- {
- returnProtocol = GetToClientFileProtocol("删除失败,原因:" + ex.Message);
- }
- }
- else
- {
- returnProtocol = GetToClientFileProtocol("指定的目录“" + dirPath + "”在服务器上不存在。");
- }
- }
- catch (Exception ex)
- {
- returnProtocol = GetToClientFileProtocol("获取失败,原因:“" + ex.Message + "”");
- }
-
- }
- else
- {
- returnProtocol = GetToClientFileProtocol("参数不正确");
- }
- return returnProtocol;
- }
- /// <summary>
- /// 获取服务器指定文件的信息
- /// </summary>
- /// <returns></returns>
- public TCP_FileProtocol GetFileInfo(TCP_FileProtocol protocol)
- {
- TCP_FileProtocol returnProtocol = new TCP_FileProtocol();
- //服务器端文件路径
- string saveFilePath = protocol.Content;
- if (!protocol.Content.Contains(":"))
- {
- saveFilePath = HPSocketCS.Extended.CommonLibrary.GetFullDirectoryPath(HPSocketCS.Extended.CommonLibrary.BasePath) + protocol.Content;
- }
-
- ServerFileInfo retfileInfo = new ServerFileInfo();
-
- if (!retfileInfo.IsExists&&System.IO.File.Exists(saveFilePath))
- {
- System.IO.FileInfo fInfo = new FileInfo(saveFilePath);
- retfileInfo.GetMsg = "成功获取指定文件信息";
- retfileInfo.FileName = fInfo.FullName;
- retfileInfo.FileSize = fInfo.Length;
- retfileInfo.IsExists = true;
- retfileInfo.CreateDatetime = fInfo.CreationTime;
- retfileInfo.UpdateDatetime = fInfo.LastWriteTime;
- if (retfileInfo.FileSize < HPSocketCS.Sdk.FileMD5VerifySize)
- {
- retfileInfo.FileMd5 = LYFZ.WinAPI.SDKSecurity.GetMD5HashFromFile(fInfo.FullName);
- }
- }
- else if (!retfileInfo.IsExists)
- {
- retfileInfo.GetMsg = "服务器上没有找到你请求的“" + protocol.Content + "”文件";
- }
- returnProtocol = GetToClientFileProtocol(retfileInfo.ToString());
- return returnProtocol;
- }
- //Import Photos
- static List<ClientRequestObject> _ImportPhotosRequestList = new List<ClientRequestObject>();
- /// <summary>
- /// 客户端导入相片请求集合
- /// </summary>
- public static List<ClientRequestObject> ImportPhotosRequestList
- {
- get { return TCP_RemoteDataHandlerPassiveMode._ImportPhotosRequestList; }
- set { TCP_RemoteDataHandlerPassiveMode._ImportPhotosRequestList = value; }
- }
- /// <summary>
- /// 检查对象在集合中是否存在
- /// </summary>
- /// <param name="requestObject"></param>
- /// <returns></returns>
- bool ImportPhotosRequestExist(ClientRequestObject requestObject)
- {
- bool bl = false;
- foreach (ClientRequestObject obj in ImportPhotosRequestList)
- {
- if (obj.Key == requestObject.Key)
- {
- bl = true;
- break;
- }
- }
- return bl;
- }
- /// <summary>
- /// 开始导入相片
- /// </summary>
- /// <param name="protocol"></param>
- /// <returns></returns>
- public TCP_FileProtocol StartImportPhotos(TCP_FileProtocol protocol)
- {
- TCP_FileProtocol returnProtocol = new TCP_FileProtocol();
- ClientRequestObject requestObject = new ClientRequestObject(protocol.Content);
- TCP_ClientConnectInfo cInfo = new TCP_ClientConnectInfo(protocol.ClientInfo);
- requestObject.IP = cInfo.IP;
- requestObject.Prot = cInfo.Port;
- requestObject.HostIdentity = cInfo.HostIdentity;
- requestObject.ConnID = cInfo.ConnId;
- if (!ImportPhotosRequestExist(requestObject))
- {
- }
- returnProtocol = GetToClientFileProtocol("Start");
- return returnProtocol;
- }
- static List<ClientRequestObject> _GenerateThumbnailsRequestList = new List<ClientRequestObject>();
- /// <summary>
- /// 生成缩略图请求集合
- /// </summary>
- public static List<ClientRequestObject> GenerateThumbnailsRequestList
- {
- get { return TCP_RemoteDataHandlerPassiveMode._GenerateThumbnailsRequestList; }
- set { TCP_RemoteDataHandlerPassiveMode._GenerateThumbnailsRequestList = value; }
- }
- /// <summary>
- /// 检查对象在生成缩略图请求集合中是否存在
- /// </summary>
- /// <param name="requestObject"></param>
- /// <returns></returns>
- bool GenerateThumbnailsRequestExist(ClientRequestObject requestObject)
- {
- bool bl = false;
- lock (GenerateThumbnailsRequestList)
- {
- foreach (ClientRequestObject obj in GenerateThumbnailsRequestList)
- {
- if (obj.Key == requestObject.Key)
- {
- bl = true;
- break;
- }
- }
- }
- return bl;
- }
- public static void RemoveGenerateThumbnailsRequest(ClientRequestObject requestObject)
- {
- lock (GenerateThumbnailsRequestList)
- {
- List<ClientRequestObject> delObjList = new List<ClientRequestObject>();
- foreach (ClientRequestObject obj in GenerateThumbnailsRequestList)
- {
- if (obj.ConnID == requestObject.ConnID)
- {
- delObjList.Add(obj);
- }
- }
- foreach (ClientRequestObject obj in delObjList)
- {
- GenerateThumbnailsRequestList.Remove(obj);
- }
- }
- }
-
-
- static int _RegConnCount = 0;
- /// <summary>
- /// 客户端坐席注册数
- /// </summary>
- public static int RegConnCount
- {
- get { return TCP_RemoteDataHandlerPassiveMode._RegConnCount; }
- set { TCP_RemoteDataHandlerPassiveMode._RegConnCount = value; }
- }
-
-
-
- private static string _ServerGlobalIDKey = "";
- public static string ServerGlobalIDKey
- {
- get { return TCP_RemoteDataHandlerPassiveMode._ServerGlobalIDKey; }
- set { TCP_RemoteDataHandlerPassiveMode._ServerGlobalIDKey = value; }
- }
-
- #endregion
- #endregion
- #region 客户端发送指令到服务端处理方法
- /// <summary>
- /// 发送SQL数据库请求命令到服务器并返回请求结果 (测试用)
- /// </summary>
- /// <param name="requestData">请求的SQL命令数据类</param>
- /// <param name="millisecondsTimeout"></param>
- /// <returns></returns>
- public HPSocketCS.Extended.SQLHelperReturnData HP_SendSqlCommandToServer(HPSocketCS.Extended.SQLHelperRequestData requestData, int millisecondsTimeout = 1000*90)
- {
- HPSocketCS.Extended.SQLHelperReturnData retData = null;
- try
- {
- byte[] tempSendBuffer = HPSocketCS.Extended.DataSetSerializerDeserialize.ObjectSerializerCompressionRetBytes(requestData);
- using (System.IO.MemoryStream retMstream = this.HpClient.AutoUnpackingSendAndReturnResult(tempSendBuffer, HPSocketCS.Extended.DataType.SQLHelper, HPSocketCS.Extended.TransferRequestCommand.SQLHelperData, millisecondsTimeout))
- {
- if (retMstream != null && retMstream.Length > 0)
- {
- retData = (HPSocketCS.Extended.SQLHelperReturnData)HPSocketCS.Extended.DataSetSerializerDeserialize.ObjectDeserializeDecompress(retMstream.GetBuffer());
- LYFZ.Network.TCPNetworkClient.TCP_NetworkClient.FromServerStartTimeStamp = retData.ServerStartTimeStamp;
- retData.DataSize = retMstream.Length;
- }
- if (retMstream != null)
- {
- retMstream.Close();
- }
- }
- }
- catch (Exception ex)
- {
- retData = new HPSocketCS.Extended.SQLHelperReturnData("SQL请求处理出错:"+ex.Message);
- HPSocketCS.Extended.SystemFileLogs.WriteLogs(retData.ReturnMessage);
- }
- return retData;
- }
- /// <summary>
- /// 发送指令到服务端并返回服务器的处理结果
- /// </summary>
- /// <param name="type">本次传输类型</param>
- /// <param name="command">要发送到服务器的指令</param>
- /// <param name="msgOrParameters">发送到服务器指令的参数或是说明,注:多个参数用 “|”分隔</param>
- /// <returns></returns>
- public TCP_FileProtocol HP_SendCommandToServer(InformationType type, HPSocketCS.Extended.TransferRequestCommand command, string msgOrParameters, int millisecondsTimeout = 1000*90)
- {
- TCP_FileProtocol protocol = new TCP_FileProtocol();
- try
- {
- LYFZ.Network.TCP_FileProtocol msgXML = new Network.TCP_FileProtocol(msgOrParameters);
- byte[] tempSendBuffer = Encoding.UTF8.GetBytes(msgXML.ToString()); // 获得缓存
- using (System.IO.MemoryStream retMstream = this.HpClient.AutoUnpackingSendAndReturnResult(tempSendBuffer, HPSocketCS.Extended.DataType.Text, command, millisecondsTimeout))
- {
- if (retMstream != null && retMstream.Length > 0)
- {
- if (type == InformationType.Data)
- {
- protocol = new TCP_FileProtocol("return");
- protocol.DataArray = retMstream.GetBuffer();
- protocol.ReceiveFileSize = retMstream.Length;
- }
- else
- {
- string ReceiveInfo = Encoding.UTF8.GetString(retMstream.GetBuffer());
- TCP_ProtocolHelperXML helper = new TCP_ProtocolHelperXML(ReceiveInfo.Trim());
- protocol = helper.GetProtocol();
- protocol.ReceiveFileSize = retMstream.Length;
- LYFZ.Network.TCPNetworkClient.TCP_NetworkClient.FromServerStartTimeStamp = protocol.ServerStartTimeStamp;
- }
- }
- }
- }
- catch (Exception ex)
- {
- HPSocketCS.Extended.SystemFileLogs.WriteLogs("连接错误:" + ex.Message);
- }
- return protocol;
- }
- /// <summary>
- /// 发送指令到服务端并返回服务器的处理结果
- /// </summary>
- /// <param name="command">要发送到服务器的指令</param>
- /// <param name="msgOrParameters">发送到服务器指令的参数或是说明,注:多个参数用 “|”分隔</param>
- /// <returns></returns>
- public string SendCommandToServerRetMessage(HPSocketCS.Extended.TransferRequestCommand command, string msgOrParameters = "Hello", int millisecondsTimeout = 1000*90)
- {
- string tempMsg = "";
- TCP_FileProtocol protocol = HP_SendCommandToServer(InformationType.Message, command, msgOrParameters, millisecondsTimeout);
- if (protocol.InfoType == InformationType.Message)
- {
- tempMsg = protocol.Content;
- }
- return tempMsg;
- }
- #endregion
- }
- }
|