|
@@ -47,11 +47,16 @@ public class MsgServerHandler extends Thread {
|
|
}
|
|
}
|
|
|
|
|
|
public void run() {
|
|
public void run() {
|
|
|
|
+ InputStream is = null;
|
|
|
|
+ InputStreamReader isr = null;
|
|
|
|
+ BufferedReader br = null;
|
|
try {
|
|
try {
|
|
- InputStream is = clientSocket.getInputStream();
|
|
|
|
|
|
+ is = clientSocket.getInputStream();
|
|
|
|
+ isr = new InputStreamReader(is, "euc-kr");
|
|
|
|
+
|
|
clientSocket.setSoLinger(true, 3000);
|
|
clientSocket.setSoLinger(true, 3000);
|
|
|
|
|
|
- BufferedReader br = new BufferedReader(new InputStreamReader(is, "euc-kr"));
|
|
|
|
|
|
+ br = new BufferedReader(isr);
|
|
rcvMsgStr = "";
|
|
rcvMsgStr = "";
|
|
|
|
|
|
StringBuffer sbRcvMSG = new StringBuffer();
|
|
StringBuffer sbRcvMSG = new StringBuffer();
|
|
@@ -103,7 +108,16 @@ public class MsgServerHandler extends Thread {
|
|
}
|
|
}
|
|
|
|
|
|
logger.info(" :: >> " + rcvMsgStr);
|
|
logger.info(" :: >> " + rcvMsgStr);
|
|
|
|
+ }catch(Exception e) {
|
|
|
|
+
|
|
|
|
+ }finally {
|
|
|
|
+ try { if(!clientSocket.isClosed()) clientSocket.close(); }catch(Exception e) { }
|
|
|
|
+ try { br.close(); } catch(Exception e) { }
|
|
|
|
+ try { isr.close(); } catch(Exception e) { }
|
|
|
|
+ try { is.close(); } catch(Exception e) { }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ try {
|
|
rcvMsgStr = rcvMsgStr.substring(rcvMsgStr.indexOf("<")); // 이 부분에 대한 예시 데이터가 있으면 이해하기 좋을거 같다. 테스트 하면서 뽑아내고 주석으로 잘아보자.
|
|
rcvMsgStr = rcvMsgStr.substring(rcvMsgStr.indexOf("<")); // 이 부분에 대한 예시 데이터가 있으면 이해하기 좋을거 같다. 테스트 하면서 뽑아내고 주석으로 잘아보자.
|
|
// 내가 생각하기엔 앞에 공백이 있을 경우? 혹은 다른 문자가 있을경우를 대비하기 위함이지 않을까 생각한다.
|
|
// 내가 생각하기엔 앞에 공백이 있을 경우? 혹은 다른 문자가 있을경우를 대비하기 위함이지 않을까 생각한다.
|
|
// 이벤트명 가져오기
|
|
// 이벤트명 가져오기
|
|
@@ -147,7 +161,7 @@ public class MsgServerHandler extends Thread {
|
|
|
|
|
|
Runnable task = () -> {
|
|
Runnable task = () -> {
|
|
Socket danziSocket = null;
|
|
Socket danziSocket = null;
|
|
-
|
|
|
|
|
|
+ DataOutputStream outStream = null;
|
|
try {
|
|
try {
|
|
danziSocket = new Socket();
|
|
danziSocket = new Socket();
|
|
danziSocket.setSoLinger(true, 3000);
|
|
danziSocket.setSoLinger(true, 3000);
|
|
@@ -157,7 +171,7 @@ public class MsgServerHandler extends Thread {
|
|
InetSocketAddress iSocAddr = new InetSocketAddress(service.getAddress(), service.getPort());
|
|
InetSocketAddress iSocAddr = new InetSocketAddress(service.getAddress(), service.getPort());
|
|
danziSocket.connect(iSocAddr, SOCKET_WAIT_TIME);
|
|
danziSocket.connect(iSocAddr, SOCKET_WAIT_TIME);
|
|
|
|
|
|
- DataOutputStream outStream = new DataOutputStream(danziSocket.getOutputStream());
|
|
|
|
|
|
+ outStream = new DataOutputStream(danziSocket.getOutputStream());
|
|
String sendMsg = rcvMsgStr + "\r\n";
|
|
String sendMsg = rcvMsgStr + "\r\n";
|
|
byte[] outBF = sendMsg.getBytes("euc-kr");
|
|
byte[] outBF = sendMsg.getBytes("euc-kr");
|
|
|
|
|
|
@@ -177,7 +191,7 @@ public class MsgServerHandler extends Thread {
|
|
StringBuffer errSB = new StringBuffer();
|
|
StringBuffer errSB = new StringBuffer();
|
|
|
|
|
|
errSB.append("\n***************************************************\n")
|
|
errSB.append("\n***************************************************\n")
|
|
- .append(" F A I L T O \"+ service.getPort() + \" S E N D E V E N T ! ! ! ! \n")
|
|
|
|
|
|
+ .append(" F A I L T O "+ service.getPort() + " S E N D E V E N T ! ! ! ! \n")
|
|
.append(" ERROR MESSAGE = " + e.getMessage() + " \n")
|
|
.append(" ERROR MESSAGE = " + e.getMessage() + " \n")
|
|
.append("***************************************************");
|
|
.append("***************************************************");
|
|
|
|
|
|
@@ -187,6 +201,7 @@ public class MsgServerHandler extends Thread {
|
|
} finally {
|
|
} finally {
|
|
try {
|
|
try {
|
|
Thread.sleep(100);
|
|
Thread.sleep(100);
|
|
|
|
+ outStream.close();
|
|
danziSocket.close();
|
|
danziSocket.close();
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|