Пример #1
0
        public void runThread()
        {
            try
            {
                logwrite.write("ISPSClient runThread", "\t ISPS Thread Start!!");

                String readLine = "";

                while (true)
                {
                    readLine = reader.ReadLine();
                    logwrite.write("ISPSReceiver runThread", readLine);
                }
            }
            catch (Exception e)
            {
                if (reader != null)
                {
                    reader.Close();
                    reader = null;
                }
                if (writeStream != null)
                {
                    writeStream.Close();
                    writeStream = null;
                }

                logwrite.write("ISPSReceiver runThread", e.ToString());
            }
            finally
            {
                ispsClient.sessionClose();



                // 사용자가 Disconnect 를 요청하지 않고 세션이 끊어진 경우 재접속 시도
                if (!ispsClient.getDisconnectReq())
                {
                    logwrite.write("ISPSReceiver runThread", "########## ISPS Session Closed !! ##########");

                    Event evt = new Event();
                    evt.setEvtCode(EVENT_TYPE.ON_DISCONNECTION);
                    evt.setEvtMsg("ISPS Session Disconnected");
                    evt.setCurIspsIP(ispsClient.getCurrentServerIP());
                    finesseObj.raiseEvent(evt);


                    if (ispsClient.reConnect() != ERRORCODE.SUCCESS)
                    {
                        // 서버 세션이 끊어지고, 재접속이 안될시 서버 프로세스가 올라올때까지 감지하는 스레드 시작한다.
                        ISocketSender ispsSender = new ISPSSender(logwrite, ispsClient);
                        ThreadStart   ts         = new ThreadStart(ispsSender.runThread);
                        Thread        thread     = new Thread(ts);
                        thread.Start();
                    }
                }
            }
        }
Пример #2
0
        public int fnDisconnect()
        {
            logwrite.write("", "");
            logwrite.write("fnConnect", "\t ** call fnDisconnect() ** ");

            ErrorEvent evt = new ErrorEvent();

            evt.setEvtCode(EVENT_TYPE.ON_DISCONNECTION);

            if (FinesseClient != null)
            {
                FinesseClient.disconnect();
                evt.setEvtMsg("Finesse Session Disconnected");
                evt.setCurFinesseIP(FinesseClient.getCurrentServerIP());
                raiseEvent(evt);
            }
            if (AEMSClient != null)
            {
                AEMSClient.disconnect();
                evt.setEvtMsg("AEMS Session Disconnected");
                evt.setCurAemsIP(AEMSClient.getCurrentServerIP());
                raiseEvent(evt);
            }
            if (ISPSClient != null)
            {
                ISPSClient.disconnect();
                evt.setEvtMsg("ISPS Session Disconnected");
                evt.setCurIspsIP(ISPSClient.getCurrentServerIP());
                raiseEvent(evt);
            }

            isFinesseConnected = false;
            isAEMSConnected    = false;
            isISPSConnected    = false;
            logwrite.write("fnDisconnect", "\t Return Data : " + ERRORCODE.SUCCESS);
            return(ERRORCODE.SUCCESS);
        }