UDPCOMM 가이드
이 화면은 UDP통신 컴포넌트에 대한 샘플 화면이다.
UDP통신 컴포넌트는 UDP 서버/클라이언트 소켓 기능을 제공하는 컴포넌트이다.
예시
화면 스크립트
function screen_on_load() { fldSendData1.settext("1234ABCD가나다라1"); fldSendData2.settext("1234ABCD가나다라2"); } function btnInitXPlusUdpSvrComm_on_mouseup(objInst) { // 초기화 udpsvr01.init(); } function btnInitXPlusUdpCltComm_on_mouseup(objInst) { // 초기화 udpclt01.init(); } function btnOpenUdpSvrSocket_on_mouseup(objInst) { // 시작 udpsvr01.open(fldUdpSvrPortNo.gettext()); } function btnOpenUdpCltSocket_on_mouseup(objInst) { // 시작 udpclt01.open(fldUdpCltPortNo.gettext()); } function btnCloseUdpSvrSocket_on_mouseup(objInst) { // 종료 udpsvr01.close(); } function btnCloseUdpCltSocket_on_mouseup(objInst) { // 종료 udpclt01.close(); } function btnSendData1_on_mouseup(objInst) { // 데이터 송신 udpsvr01.send(fldReceiverIpAddr1.gettext(), fldReceiverPortNo1.gettext(), fldSendData1.gettext()); } function btnSendData2_on_mouseup(objInst) { // 데이터 송신 udpclt01.send(fldReceiverIpAddr2.gettext(), fldReceiverPortNo2.gettext(), fldSendData2.gettext()); } function btnClearData1_on_mouseup(objInst) { // 수신 데이터 정보 초기화 fldRecvDataLength1.settext(""); fldSenderIpAddr1.settext(""); fldSenderPortNo1.settext(""); fldRecvData1.settext(""); } function btnClearData2_on_mouseup(objInst) { // 수신 데이터 정보 초기화 fldRecvDataLength2.settext(""); fldSenderIpAddr2.settext(""); fldSenderPortNo2.settext(""); fldRecvData2.settext(""); } ///////////////////////////////////////////////////////////////////////////////////////// // EVENT ///////////////////////////////////////////////////////////////////////////////////////// /** * 모듈 로딩 완료 및 컴포넌트 초기화 성공시 이벤트 * @param objInst UDP통신 컴포넌트 오브젝트 */ function udpsvr01_on_init(objInst) { factory.consoleprint(objInst.getname() + "_on_init>"); console.log(objInst.getname() + "_on_init>"); } /** * UDP 세션 연결시 이벤트 * @param objInst UDP통신 컴포넌트 오브젝트 * @param nLocalPort 연결된 세션의 로컬포트 */ function udpsvr01_on_open(objInst, nLocalPort) { factory.consoleprint(objInst.getname() + "_on_open : " + nLocalPort); console.log(objInst.getname() + "_on_open : " + nLocalPort); } /** * 데이터 수신 이벤트 처리 * @param objInst UDP통신 컴포넌트 오브젝트 * @param nDataLen 수신한 데이터 길이 * @param strData 수신한 데이터 * @param strRemoteIP 데이터를 송신한 IP 주소 * @param nRemotePort 데이터를 송신한 UDP 포트 번호 */ function udpsvr01_on_recv(objInst, nDataLen, strData, strRemoteIP, nRemotePort) { factory.consoleprint("nDataLen = " + nDataLen); factory.consoleprint("strData = " + strData); fldRecvDataLength1.settext(nDataLen); fldSenderIpAddr1.settext(strRemoteIP); fldSenderPortNo1.settext(nRemotePort); fldRecvData1.settext(strData); } /** * 에러 발생시 이벤트 * @param objInst UDP통신 컴포넌트 오브젝트 * @param nErrorCode 에러코드 * @param strErrorMsg 에러메시지 * @param strRemoteIP 데이터를 송신한 IP 주소(수신에 실패한 경우는 빈값) * @param nRemotePort 데이터를 송신한 UDP 포트 번호(수신에 실패한 경우는 0) */ function udpsvr01_on_error(objInst, nErrorCode, strErrorMsg, strRemoteIP, nRemotePort) { if (strRemoteIP == "") { screen.alert(objInst.getname() + "_on_error : " + nErrorCode + ", " + strErrorMsg); } else { screen.alert(objInst.getname() + "_on_error : " + nErrorCode + ", " + strErrorMsg + ", " + strRemoteIP + ", " + nRemotePort); } } /** * 모듈 로딩 완료 및 컴포넌트 초기화 성공시 이벤트 * @param objInst UDP통신 컴포넌트 오브젝트 */ function udpclt01_on_init(objInst) { factory.consoleprint(objInst.getname() + "_on_init>"); console.log(objInst.getname() + "_on_init>"); } /** * UDP 세션 연결시 이벤트 * @param objInst UDP통신 컴포넌트 오브젝트 * @param nLocalPort 연결된 세션의 로컬포트 */ function udpclt01_on_open(objInst, nLocalPort) { factory.consoleprint(objInst.getname() + "_on_open : " + nLocalPort); console.log(objInst.getname() + "_on_open : " + nLocalPort); fldUdpCltPortNo.settext(nLocalPort); fldReceiverPortNo1.settext(nLocalPort); } /** * 데이터 수신 이벤트 처리 * @param objInst UDP통신 컴포넌트 오브젝트 * @param nDataLen 수신한 데이터 길이 * @param strData 수신한 데이터 * @param strRemoteIP 데이터를 송신한 IP 주소 * @param nRemotePort 데이터를 송신한 UDP 포트 번호 */ function udpclt01_on_recv(objInst, nDataLen, strData, strRemoteIP, nRemotePort) { factory.consoleprint("nDataLen = " + nDataLen); factory.consoleprint("strData = " + strData); fldRecvDataLength2.settext(nDataLen); fldSenderIpAddr2.settext(strRemoteIP); fldSenderPortNo2.settext(nRemotePort); fldRecvData2.settext(strData); } /** * 에러 발생시 이벤트 * @param objInst UDP통신 컴포넌트 오브젝트 * @param nErrorCode 에러코드 * @param strErrorMsg 에러메시지 * @param strRemoteIP 데이터를 송신한 IP 주소(수신에 실패한 경우는 빈값) * @param nRemotePort 데이터를 송신한 UDP 포트 번호(수신에 실패한 경우는 0) */ function udpclt01_on_error(objInst, nErrorCode, strErrorMsg, strRemoteIP, nRemotePort) { if (strRemoteIP != "") { // 데이터 송신 실패 screen.alert(objInst.getname() + "_on_error : " + nErrorCode + ", " + strErrorMsg + ", " + strRemoteIP + ", " + nRemotePort); } else { // 그 외의 오류 (데이터 수신 실패, API 처리 실패) screen.alert(objInst.getname() + "_on_error : " + nErrorCode + ", " + strErrorMsg); } }