이 화면은 XPlusTcpComm.ocx 컴포넌트에 대한 샘플 화면이다.
XPlusTcpComm.ocx 컴포넌트는 TCP 클라이언트 소켓 기능을 제공하는 컴포넌트이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 |
// XCltComm 초기화 버튼 클릭 이벤트 처리 function btnInitXCltComm_on_mouseup(objInst) { var nRet; var strLogDir = "C:\\xFrame\\log" ; /** * XCltComm 컴포넌트를 초기화한다. * @param nLengthFieldLength 데이터 길이 필드 길이 * @param nLenIncFlag 길이 필드 계산시 길이 필드 자체 포함 여부 (0 또는 1) * @param pLogDir 로그 저장 디렉토리 * @param pLogFilePrefix 로그 파일 이름 * @param pLogLevel 로그 레벨("DEBUG"<"INFO"<"WARN"<"ERROR") * ("DEBUG"로 지정시에만 송수신 데이터 덤프 로그가 기록됨) * @param nLogEncFlag 로그 파일 내용 암호화 여부 * @return * 0 : Success * 1 : Invalid Length Field Length * 2 : Fail to Allocate Memory For Length Field */ nRet = objXPlusTcpComm.innerctrl.InitXPlusTcpComm(strLogDir, "XPlusTcpComm" , "DEBUG" , 0, "127.0.0.1" , fldTcpSvrPortNo.GetText(), 8, 0); factory.consoleprint( "objXCltComm Return Value = " + nRet); if (nRet != 0) { screen.alert( "objXCltComm Fail, Error Code = " + nRet); } } // 세션 연결 버튼 클릭 이벤트 처리 function btnConnectSession_on_mouseup(objInst) { var strTcpSvrIpAddr = fldTcpSvrIpAddr.gettext(); var nTcpSvrPortNo = fldTcpSvrPortNo.gettext(); var nConnectTimeout = fldConnectTimeout.gettext(); /** * TCP 세션 연결을 시도한다. * @param strTcpSvrIpAddr TCP 연결 대상 서버 IP 주소 * @param nTcpSvrPortNo 연결 대상 서버 TCP 포트 번호 * @param nConnectTimeout 연결 타임아웃(단위: 초), 0으로 지정시 기본 소켓 타임아웃 사용 * @return * 0 : OK * 1 : Fail To Connect * 2 : Fail to Select * 3 : Connect Timeout * 9 : Not Initialized */ var nRet = objXPlusTcpComm.innerctrl.ConnectSession(); factory.consoleprint( "ConnectSession() Return = " + nRet); if (nRet != 0) { screen.alert( "ConnectSession() Fail, Error Code = " + nRet); } } // TCP 세션 해제 버튼 클릭 이벤트 처리 function btnCloseSession_on_mouseup(objInst) { /** * TCP 세션 연결을 해제한다. * @return * 0 : OK * 9 : Not Initialized */ var nRet = objXPlusTcpComm.innerctrl.CloseSession(); factory.consoleprint( "CloseSession() Return = " + nRet); if (nRet != 0) { screen.alert( "CloseSession() Fail, Error Code = " + nRet); } } // 데이터 송신 버튼 클릭 이벤트 처리 function btnSendData_on_mouseup(objInst) { var strSendData = fldSendData.gettext(); /** * 연결된 TCP 세션을 통해서 데이터를 송신한다. * @param strSendData 송신할 데이터 * @return * 0 : Success * 1 : Invalid Parameter * 2 : Session is Not Connected * 3 : Fail to Send Length Field * 4 : Fail to Send Data Field * 9 : Not Initialized */ var nRet = objXPlusTcpComm.innerctrl.SendData(strSendData); factory.consoleprint( "SendData() Return = " + nRet); if (nRet != 0) { screen.alert( "SendData Fail, Error Code = " + nRet); var strErrorMsg = objXPlusTcpComm.innerctrl.GetErrorMsg(); factory.consoleprint( "SendData Fail, Error Msg = " + strErrorMsg); } } function btnSendDataAndClose_on_mouseup(objInst) { var strSendData = fldSendData.gettext(); /** * 연결된 TCP 세션을 통해서 데이터를 송신한다. * @param strSendData 송신할 데이터 * @return * 0 : Success * 1 : Invalid Parameter * 2 : Session is Not Connected * 3 : Fail to Send Length Field * 4 : Fail to Send Data Field * 9 : Not Initialized */ var nRet = objXPlusTcpComm.innerctrl.SendData(strSendData); factory.consoleprint( "SendData() Return = " + nRet); if (nRet != 0) { screen.alert( "SendData Fail, Error Code = " + nRet); var strErrorMsg = objXPlusTcpComm.innerctrl.GetErrorMsg(); factory.consoleprint( "SendData Fail, Error Msg = " + strErrorMsg); } objXPlusTcpComm.innerctrl.CloseSession(); } // 수신 데이터 정보 초기화 버튼 클릭 이벤트 처리 function btnClearData_on_mouseup(objInst) { fldRecvDataLength.settext( "" ); fldRecvData.settext( "" ); } // 데이터 송신 타임아웃 시간 지정 버튼 클릭 이벤트 처리 function btnSetSendTimeout_on_mouseup(objInst) { var nSendTimeout = fldSendTimeout.gettext(); /** * TCP 세션으로 데이터 송신시 타임아웃을 지정한다. * (이 함수를 호출하기 이전에는 내부적으로 기본값으로 10초를 사용하고 있다.) * @param nSendTimeout 데이터 송신 타임아웃 (단위: 초) * @return * 0 : OK * 1 : Invalid Timeout * 9 : Not Initialized */ var nRet = objXPlusTcpComm.innerctrl.SetSendTimeout(nSendTimeout); factory.consoleprint( "SetSendTimeout Return = " + nRet); if (nRet != 0) { screen.alert( "SetSendTimeout Fail, Error Code = " + nRet); } } // 로그 기록 여부 플래그 설정 버튼 클릭 이벤트 처리 function btnSetLogFlag_on_mouseup(objInst) { var nLogFlag = fldLogFlag.gettext(); /** * 로그 기록 여부를 지정한다. * @param nLogFlag 로그 기록 여부 (1: 로그 기록, 0: 로그 기록 안함) * @return * 0 : OK * 9 : Not Initialized */ var nRet = objXCltComm.innerctrl.SetLogFlag(nLogFlag); factory.consoleprint( "SetLogFlag Return = " + nRet); if (nRet != 0) { screen.alert( "SetLogFlag Fail, Error Code = " + nRet); } } // 현재 연결 상태 조회 버튼 클릭 이벤트 처리 function btnIsConnected_on_mouseup(objInst) { /** * 세션 연결 상태를 구한다 * @return * 0 : 세션 해제 상태 * 1 : 세션 연결 상태 */ var nRet = objXPlusTcpComm.innerctrl.IsConnected(); fldIsConnected.settext(nRet); } /** * TCP 세션 해제 이벤트를 처리한다. * CloseSession 함수 호출시에는 이벤트가 발생하지 않는다. * @param objInst XPlusTcpComm 오브젝트 * @param nEvent 세션 해제 원인 코드 * @param pMsg 세션 해제 오류 메시지 */ function objXPlusTcpComm_OnClose(objInst,nEvent,pMsg) { screen.alert( "objXPlusTcpComm_OnClose> nEvent = " + nEvent + ", " + pMsg); } /** * 데이터 수신 이벤트 처리 * @param objInst XPlusTcpComm 오브젝트 * @param nLength 수신한 데이터 길이 * @param pDataKey 수신한 데이터에 대한 Key값, GetData 함수에서 사용됨 */ function objXPlusTcpComm_OnReceive(objInst,nLength,pDataKey) { factory.consoleprint( "nLength = " + nLength); factory.consoleprint( "pDataKey = " + pDataKey); fldRecvDataLength.settext(nLength); /** * 실제 수신된 데이터를 구함 * @return strRecvData 수신한 데이터 */ var strRecvData = objXPlusTcpComm.innerctrl.GetData(pDataKey); factory.consoleprint( "RecvData = " + strRecvData); fldRecvData.settext(strRecvData); return ; } |