/// <summary>
        /// 一对一发送命令/数据
        /// </summary>
        /// <param name="nDestId"></param>命令/数据目的ID
        /// <param name="nCmd"></param>命令
        /// <param name="rData"></param>数据
        /// <returns></returns>
        public bool SyncRequest(int nDestId, int nCmd, byte[] Data)
        {
            bool   boRC = false;//运行正常与否标志位
            Socket socket;

            if (nCmd != (int)HC_FSM_COMMAND_TYPE.HC_CMD_DISPLAY_OFF &&
                nCmd != (int)HC_FSM_COMMAND_TYPE.HC_CMD_DISPLAY_ON &&
                !SubsysIsConnected(Commonfunction.GetSubsysIndex(nDestId)))
            {
                Trace.WriteLine(string.Format("当前子系统不可用,函数SyncRequest nDestId:{0},nCmd={1}", nDestId, nCmd));
#if REALEASE
                GlobalDataInterface.WriteErrorInfo(string.Format("当前子系统不可用,函数SyncRequest nDestId:{0},nCmd={1}", nDestId, nCmd));
#endif
                return(false);
            }
            //C++: AfxGetApp()->BeginWaitCursor();

            string strIP     = "";
            int    nSubsysId = Commonfunction.GetSubSysID(nDestId);
            int    nPortNum  = ConstPreDefine.FSM_PORT_NUM;

            if (nCmd >= 0x2000 && nCmd < 0x3000) //判断为HC->IPM的发送命令
            {
                nPortNum  = ConstPreDefine.IPM_PORT_NUM;
                nSubsysId = Commonfunction.GetIPMID(nDestId);
            }

            string strTemp = ConstPreDefine.LC_IP_ADDR_TEMPLATE;
            strIP = strTemp + nSubsysId;//得到发送的IP地址


            try
            {
                Lock(1000);                //资源加锁

                socket = CreateSocket();   //创建socket
                socket.SendBufferSize = 0; //网络发送缓冲区为0
                if (nCmd == (int)HC_FSM_COMMAND_TYPE.HC_CMD_DISPLAY_ON)
                {
                    boRC = ConnectoServer(socket, strIP, nPortNum, true);//初始连接
                }
                else
                {
                    boRC = ConnectoServer(socket, strIP, nPortNum, false);//运行状态下连接
                }
                if (!boRC)
                {
                    Trace.WriteLine("网络连接失败!");
#if REALEASE
                    GlobalDataInterface.WriteErrorInfo(string.Format("网络连接失败!"));
#endif
                    UnLock();
                    socket.Close();
                    return(boRC);
                }

                SendCMD cmd = new SendCMD();

                cmd.SYNC    = 0x434e5953;
                cmd.nSrcId  = ConstPreDefine.HC_ID; //发送源ID
                cmd.nDestId = nDestId;              //发送目的ID
                cmd.nCmd    = nCmd;

                int    nStructLen = 4 * sizeof(int);
                byte[] bytes      = new byte[nStructLen];
                bytes = Commonfunction.StructToBytes(cmd); //将结构体转化为byte数组

                boRC = Send(socket, bytes);                //发送命令头
                if (!boRC)
                {
                    Trace.WriteLine("网络发送命令头错误!");
#if REALEASE
                    GlobalDataInterface.WriteErrorInfo(string.Format("网络发送命令头错误!"));
#endif
                    goto leave;
                }

                int A = BitConverter.ToInt32(bytes, 12);

                if (Data != null)
                {
                    boRC = Send(socket, Data);//发送数据
                    if (!boRC)
                    {
                        Trace.WriteLine("网络发送数据错误!");
#if REALEASE
                        GlobalDataInterface.WriteErrorInfo(string.Format("网络发送数据错误!"));
#endif
                        goto leave;
                    }
                }


leave:
                DestroySocket(socket, boRC);
                UnLock();
                //AfxGetApp()->EndWaitCursor();
                if (boRC)
                {
                    Trace.WriteLine(string.Format("成功:函数SyncRequest nDestId:{0},nCmd={1},数据长度={2}", nDestId, nCmd, Data.Length));
#if REALEASE
                    GlobalDataInterface.WriteErrorInfo(string.Format("成功:函数SyncRequest nDestId:{0},nCmd={1},数据长度={2}", nDestId, nCmd, Data.Length));
#endif
                }
                else
                {
                    if (nCmd == (int)HC_FSM_COMMAND_TYPE.HC_CMD_DISPLAY_ON)
                    {
                        m_IsConnected[Commonfunction.GetSubsysIndex(nDestId)] = false;
                    }
                    Trace.WriteLine(string.Format("失败:函数SyncRequest nDestId:{0},nCmd={1},数据长度={2}", nDestId, nCmd, Data.Length));
#if REALEASE
                    GlobalDataInterface.WriteErrorInfo(string.Format("失败:函数SyncRequest nDestId:{0},nCmd={1},数据长度={2}", nDestId, nCmd, Data.Length));
#endif
                }
            }
            catch (Exception e)
            {
                Trace.WriteLine("失败:函数SyncRequest" + e);
#if REALEASE
                GlobalDataInterface.WriteErrorInfo("失败:函数SyncRequest" + e);
#endif
                return(false);
            }

            return(boRC);
        }