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