public AThrdClientSocketPlcSiemens(int nID, IntPtr hParent)
        {
            m_nID     = nID;
            m_hParent = hParent;

            for (int i = 0; i < ASDef._MAX_PLC_DI; i++)
            {
                // 2015.02.25
                //m_pnOldDI[i] = m_pnDI[i] = 0;
                m_pnDI[i] = 0;
            }
            for (int i = 0; i < ASDef._MAX_PLC_DO; i++)
            {
                m_pnOldDO[i] = m_pnDO[i] = 0;
            }

            m_bStop = false;

            LoadIni("ThrdClientSocketPlcSiemens" + m_nID.ToString(), ASDef._INI_FILE);

            m_AClientSocketPlcSiemensFetch = new AClientSocketPlcSiemens(m_nID, m_hParent);
            m_AClientSocketPlcSiemensFetch.LoadIni("ClientSocketPlcSiemensFetch" + m_nID.ToString());
            m_AClientSocketPlcSiemensWrite = new AClientSocketPlcSiemens(m_nID, m_hParent);
            m_AClientSocketPlcSiemensWrite.LoadIni("ClientSocketPlcSiemensWrite" + m_nID.ToString());
        }
        // 2011.04.21 마cto

        /*
         * public void Reconnect()
         * {
         *  Ping ping = new Ping();
         *
         *  if (ping.Send(m_AClientSocketPlcSiemensFetch.m_strIP).Status == IPStatus.Success)
         *  {
         *      m_AClientSocketPlcSiemensFetch = new AClientSocketPlcSiemens(m_nID, m_hParent);
         *                      m_AClientSocketPlcSiemensFetch.LoadIni("ClientSocketPlcSiemensFetch" + m_nID.ToString());
         *      m_AClientSocketPlcSiemensFetch.m_bMsg = false;
         *                      if (m_AClientSocketPlcSiemensFetch.Connect() == true)
         *                      {
         *
         *                              for (int i = 0; i < ASDef._MAX_PLC_DI; i++)
         *                              {
         *                                      m_pnOldDI[i] = m_pnDI[i] = 0;
         *                              }
         *      }
         *      m_AClientSocketPlcSiemensWrite = new AClientSocketPlcSiemens(m_nID, m_hParent);
         *                      m_AClientSocketPlcSiemensWrite.LoadIni("ClientSocketPlcSiemensWrite" + m_nID.ToString());
         *      m_AClientSocketPlcSiemensWrite.m_bMsg = false;
         *                      if (m_AClientSocketPlcSiemensWrite.Connect() == true)
         *                      {
         *                              for (int i = 0; i < ASDef._MAX_PLC_DO; i++)
         *                              {
         *                                      m_pnOldDO[i] = m_pnDO[i] = 0;
         *                              }
         *      }
         *
         *                      AUtil.PostMessage(m_hParent, _WM_PLC_RECONNECT, Convert.ToInt16(m_AClientSocketPlcSiemensFetch.m_bConnect), 0);
         *
         *  }
         * }
         */
        public bool Reconnect()
        {
            // 2014.08.10
            m_bReConnecting = true;

            Ping ping = new Ping();

            // 2014.12.05
            try
            {
                if (ping.Send(m_AClientSocketPlcSiemensFetch.m_strIP).Status == IPStatus.Success)
                {
                    //m_Thrd.Suspend();
                    if (m_Thrd != null)
                    {
                        m_Thrd.Abort();
                        m_Thrd.Join();
                    }
                    m_Thrd = null;
                    // 2016.01.04 by kdi.
                    m_bStop = false;

                    m_AClientSocketPlcSiemensFetch.Close();
                    m_AClientSocketPlcSiemensFetch = null;
                    m_AClientSocketPlcSiemensFetch = new AClientSocketPlcSiemens(m_nID, m_hParent);
                    m_AClientSocketPlcSiemensFetch.LoadIni("ClientSocketPlcSiemensFetch" + m_nID.ToString());
                    if (m_AClientSocketPlcSiemensFetch.ConnectNoMessage() == true)
                    {
                        for (int i = 0; i < ASDef._MAX_PLC_DI; i++)
                        {
                            // 2015.02.25
                            //m_pnOldDI[i] = m_pnDI[i] = 0;
                            m_pnDI[i] = 0;
                        }
                        m_AClientSocketPlcSiemensWrite.Close();
                        m_AClientSocketPlcSiemensWrite = null;
                        m_AClientSocketPlcSiemensWrite = new AClientSocketPlcSiemens(m_nID, m_hParent);
                        m_AClientSocketPlcSiemensWrite.LoadIni("ClientSocketPlcSiemensWrite" + m_nID.ToString());
                        if (m_AClientSocketPlcSiemensWrite.ConnectNoMessage() == true)
                        {
                            for (int i = 0; i < ASDef._MAX_PLC_DO; i++)
                            {
                                m_pnOldDO[i] = m_pnDO[i] = 0;
                            }

                            //m_Thrd.Resume();
                            m_Thrd = new Thread(new ThreadStart(Run));
                            m_Thrd.Start();

                            // 2014.08.10
                            m_bReConnecting = false;

                            return(true);
                        }
                    }
                }
            }
            catch
            {
            }

            // 2014.08.10
            m_bReConnecting = false;

            return(false);
        }