====== UDPCOMM 가이드 ======
이 화면은 UDP통신 컴포넌트에 대한 샘플 화면이다.
UDP통신 컴포넌트는 UDP 서버/클라이언트 소켓 기능을 제공하는 컴포넌트이다.
===== 예시 =====
템플릿 위치: /HTML5/COMPONENT/UDPCOMM/udpcomm_basic
템플릿 파일
* [[xf5projecthome>template/screen/HTML5/COMPONENT/UDPCOMM/udpcomm_basic.xml|udpcomm_basic.xml]]
* [[xf5projecthome>template/screen/HTML5/COMPONENT/UDPCOMM/udpcomm_basic.js|udpcomm_basic.js]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/COMPONENT/UDPCOMM/udpcomm_basic|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
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);
}
}