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); }
public void runThread() { try { /* * String readLine = ""; * * while (true) * { * readLine = reader.ReadLine(); * logwrite.write("AEMSReceiver runThread", readLine); * } * */ logwrite.write("AEMSReceiver runThread", "\t AEMS Receiver Thread Start!!"); int BUFFERSIZE = sock.ReceiveBufferSize; byte[] buffer = new byte[BUFFERSIZE]; int bytelen = 0; while ((bytelen = writeStream.Read(buffer, 0, buffer.Length)) > 0) { string message = Encoding.UTF8.GetString(buffer, 0, bytelen); logwrite.write("recv", message); } } catch (Exception e) { if (reader != null) { reader.Close(); reader = null; } if (writeStream != null) { writeStream.Close(); writeStream = null; } logwrite.write("AEMSReceiver runThread", e.ToString()); } finally { aemsClient.sessionClose(); if (!aemsClient.getDisconnectReq()) { logwrite.write("AEMSReceiver runThread", "########## AEMS Session Closed !! ##########"); Event evt = new Event(); evt.setEvtCode(EVENT_TYPE.ON_DISCONNECTION); evt.setEvtMsg("AEMS Session Disconnected"); evt.setCurAemsIP(aemsClient.getCurrentServerIP()); finesseObj.raiseEvent(evt); if (aemsClient.reConnect() != ERRORCODE.SUCCESS) { // 서버 세션이 끊어지고, 재접속이 안될시 서버 프로세스가 올라올때까지 감지하는 스레드 시작한다. ISocketSender aemsSender = new AEMSSender(logwrite, aemsClient); ThreadStart ts = new ThreadStart(aemsSender.runThread); Thread thread = new Thread(ts); thread.Start(); } } } }