목차

UDPCOMM 가이드

이 화면은 UDP통신 컴포넌트에 대한 샘플 화면이다.

UDP통신 컴포넌트는 UDP 서버/클라이언트 소켓 기능을 제공하는 컴포넌트이다.

예시

템플릿 위치: /HTML5/COMPONENT/UDPCOMM/udpcomm_basic

템플릿 파일

화면 스크립트

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);
	}
}