client_socket_read(sock, length=-1, timeout=-1)
기능
서버로부터 데이터를 수신합니다.
인수
인수명 | 자료형 | 기본값 | 설명 |
---|---|---|---|
sock | socket.socket | - | client_socket_open()에서 리턴 받은 socket instance |
length | int | -1 | 수신할 데이터의 바이트 수
|
timeout | int float | -1 | 수신 대기 시간
|
리턴
값(res, rx_data) | 설명 | |
res | >0 | 수신한 데이터의 바이트 수 |
-1 | Server와 연결된 상태가 아닙니다. | |
-2 | 수신 처리 중 socket.error 예외 발생 | |
-3 | 지정한 수신 timeout 발생 | |
rx_data | 수신한 데이터(byte 형) |
예외
예외 | 설명 |
---|---|
DR_Error (DR_ERROR_TYPE) | 인수의 데이터형 오류 시 |
DR_Error (DR_ERROR_VALUE) | 인수의 값이 유효하지 않을 시 |
예제
sock = client_socket_open(“192.168.137.200”, 20002)
res, rx_data = client_socket_read(sock) # 데이터를 수신할때까지 무한 대기
# length 생략했으므로 수신된 데이터만큼 읽고,
# timeout 생략했으므로 수신될 때 까지 무한 대기 합니다.
# 데이터가 수신되면 (res = 수신 데이터 사이즈, rx_data=수신데이터) 반환됩니다.
res, rx_data = client_socket_read(sock, timeout=3) # 데이터 수신 될까지 3초간 대기
# 데이터가 3초안에 수신되면 (res = 수신 데이터 사이즈, rx_data=수신데이터) 반환
# 데이터가 3초안에 수신 안되면 (res = -3, rx_data=None) 반환
res, rx_data = client_socket_read(sock, length=64) #수신 데이터 64바이트 읽기
res, rx_data = client_socket_read(sock, length=64, timeout=3)
# 3초 타임 아웃을 가지고 수신 데이터 64바이트 읽기
#수신된 byte형을 string 형으로 변환
rx_msg = rx_data.decode() #rx_data는 byte형이고 string형으로 변환하기 위해서는
#decode() 사용합니다.
#예를 들어, rx_data = b”abcd” 이면,
#rx_msg=”abcd”가 됩니다.
client_socket_close(sock)