UTL_TCP
UTL_TCP 패키지의 기본 개념과 패키지 내의 프러시저와 함수를 사용하는 방법을 설명합니다.
개요
UTL_TCP은 TCP/IP 클라이언트 역할을 수행할 수 있는 프러시저 및 함수들을 제공하는 패키지입니다.
많은 인터넷 환경이 TCP/IP 프로토콜에 기반하므로, 이메일이나 인터넷 연결 등에 유용하게 사용될 수 있 다.
타입
본 절에서는 UTL_TCP 패키지에 제공하는 별도 정의된 타입들을 알파벳 순으로 설명합니다.
CONNECTION
UTL_TCP를 이용한 TCP/IP 연결의 객체 및 연결 정보를 담고 있는 레코드 타입입니다.
CONNECTION 타입의 세부 내용은 다음과 같습니다.
프로토타입
TYPE CONNECTION IS RECORD
(
pvid PLS_INTEGER,
remote_host VARCHAR2(255),
remote_port PLS_INTEGER,
tx_timeout PLS_INTEGER
);필드
pvid
TCP/IP의 연결 객체를 지칭하는 ID
변경하지 않도록 함
remote_host
연결된 TCP 서버의 주소
remote_port
연결된 TCP 서버의 포트 번호
tx_timeout
TCP 통신을 이용한 읽기/쓰기의 시간 제한으로, 제한 시간이 지나면 타임아 웃 에러와 함께 반환 (단위: 초)
NULL : 응답이 올 때까지 기다림
0 : 전송 후 대기 없이 즉시 빠져나옴
상수
CRLF
캐리지 리턴 문자, 라인 피드 문자를 가지는 문자열입니다.
정의
프러시저와 함수
본 절에서는 UTL_TCP 패키지에서 제공하는 프러시저와 함수를 알파벳 순으로 설명합니다.
프러시저/함수 예제의 TCP 송수신 확인을 위해 에코 서버가 필요한 경우, 아래 예시와 같이 생성할 수 있습니다.
본 문서의 예제는 localhost(127.0.0.1)와 포트 61000을 사용하며, 테스트 용도로만 활용하시기 바랍니다.
CLOSE_ALL_CONNECTIONS
세션에서 연결 중인 TCP/IP 연결을 모두 끊는 프러시저입니다.
CLOSE_ALL_CONNECTIONS 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
예제
CLOSE_CONNECTION
연결 중인 TCP/IP 연결을 끊는 프러시저입니다.
CLOSE_CONNECTION 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
예제
GET_LINE
원격 TCP 서버로부터 받은 문자열 한 줄을 가져오는 함수입니다. 자세한 내용은 동일한 기능을 수행하는 READ_LINE 함수의 설명을 참고합니다.
GET_LINE 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
remove_crlf
TRUE일 경우 문자열에 포함된 CR/LF 문자열을 제거하여 반환
peek
TRUE일 경우 TCP input queue로부터 읽어온 데이터를 비우지 않고 보존하여 이후 다시 읽어올 경우 같은 데이터를 읽게 됨
반환값
읽어들인 문자열입니다.
예제
GET_RAW
원격 TCP 서버로부터 받은 바이너리 데이터를 가져오는 함수입니다. 자세한 내용은 동일한 기능을 수행하 는 READ_RAW 함수의 설명을 참고합니다.
GET_RAW 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
len
읽어올 바이너리 데이터의 Byte 개수(기본값: 1)
peek
TRUE일 경우 TCP input queue로부터 읽어온 데이터를 비우지 않고 보존하여 이후 다시 읽어올 경우 같은 데이터를 읽게 됨
반환값
읽어들인 바이너리 데이터입니다.
예제
GET_TEXT
원격 TCP 서버로부터 받은 문자열을 가져오는 함수입니다. 자세한 내용은 동일한 기능을 수행하는 READ_TEXT 함수의 설명을 참고합니다.
타임아웃이 설정된 경우 타임아웃 시간까지 기다렸다가 만료되었을 때 TRANSFER_TIMEOUT 예외를 발 생시킨다. 타임아웃이 NULL일 경우에는 무한정 기다리므로 주의하여 사용하도록 합니다.
GET_TEXT 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
len
읽어올 문자열의 Byte 개수(기본값: 1)
peek
TRUE일 경우 TCP input queue로부터 읽어온 데이터를 비우지 않고 보존하여 이후 다시 읽어올 경우 같은 데이터를 읽게 됨
반환값
읽어들인 문자열입니다.
예제
OPEN_CONNECTION
외부 TCP 서버로의 TCP/IP 연결을 맺는 프러시저입니다.
OPEN_CONNECTION 프러시저의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
remote_host
연결할 TCP 서버의 주소 이름
NULL이면
localhost로 자동 설정
remote_port
연결할 TCP 서버의 포트 번호
tx_timeout
TCP 통신을 이용한 읽기/쓰기의 시간 제한으로, 제한 시간이 지나면 타임아웃 에러와 함께 반환됨(단위: 초)
NULL: 응답이 올 때까지 기다림
0: 전송 후 대기 없이 즉시 빠져나옴
반환값
TCP/IP 연결 정보를 갖는 UTL_TCP.CONNECTION 타입의 객체입니다.
예제
READ_LINE
원격 TCP 서버로부터 받은 문자열 한 줄을 가져오는 함수입니다.
타임아웃이 설정된 경우 타임아웃 시간까지 기다렸다가 만료되었을 때 TRANSFER_TIMEOUT 예외를 발 생시킨다. 타임아웃이 NULL일 경우에는 무한정 기다리므로 주의하여 사용하도록 합니다.
READ_LINE 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
data
읽어들인 문자열
remove_crlf
TRUE일 경우 문자열에 포함된 CR/LF 문자열을 제거하여 반환
peek
TRUE일 경우 TCP input queue로부터 읽어온 데이터를 비우지 않고 보존하여 이후 다시 읽어올 경우 같은 데이터를 읽게 됨
반환값
읽어들인 문자열의 문자 수입니다.
예제
READ_RAW
원격 TCP 서버로부터 받은 바이너리 데이터를 가져오는 함수입니다.
타임아웃이 설정된 경우 타임아웃 시간까지 기다렸다가 만료되었을 때 TRANSFER_TIMEOUT 예외를 발 생시킨다. 타임아웃이 NULL일 경우에는 무한정 기다리므로 주의하여 사용하도록 합니다.
READ_RAW 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
data
읽어들인 문자열
len
읽어올 바이너리 데이터의 Byte 개수
peek
TRUE일 경우 TCP input queue로부터 읽어온 데이터를 비우지 않고 보존하여 이후 다시 읽어올 경우 같은 데이터를 읽게 됨
반환값
읽어들인 데이터의 Byte 개수입니다.
예제
READ_TEXT
원격 TCP 서버로부터 받은 문자열을 가져오는 함수입니다.
타임아웃이 설정된 경우 타임아웃 시간까지 기다렸다가 만료되었을 때 TRANSFER_TIMEOUT 예외를 발 생시킨다. 타임아웃이 NULL일 경우에는 무한정 기다리므로 주의하여 사용하도록 합니다.
READ_TEXT 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
data
읽어들인 문자열
len
읽어올 문자열의 문자 개수
peek
TRUE일 경우 TCP input queue로부터 읽어온 데이터를 비우지 않고 보존하여 이후 다시 읽어올 경우 같은 데이터를 읽게 됨
반환값
읽어들인 데이터의 Byte 개수입니다.
예제
WRITE_LINE
원격 TCP 서버로 한줄의 문자열을 전송하는 함수입니다. 입력문자열 뒤에 새줄 문자열이 붙어서 전송됩니다.
WRITE_LINE 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
data
전송할 문자열
반환값
실제 전송된 데이터의 문자열 개수입니다.
예제
WRITE_RAW
원격 TCP 서버로 바이너리 형태의 데이터를 보내는 함수입니다. WRITE_RAW 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
data
전송할 바이너리 데이터
len
전송할 바이너리 데이터의 Byte 수
NULL이면 데이터 전체를 전송
반환값
실제 전송된 데이터의 Byte 수입니다.
예제
WRITE_TEXT
원격 TCP 서버로 문자열 형태의 데이터를 보내는 함수입니다.
WRITE_TEXT 함수의 세부 내용은 다음과 같습니다.
프로토타입
파라미터
c
기존에 연결된 연결 객체
타입은 UTL_TCP.CONNECTION
data
전송할 문자열 데이터
len
전송할 문자열의 문자 개수
NULL이면 문자열 전체를 전송
반환값
실제 전송된 문자열의 문자 개수입니다.
예제
Last updated

