정의
server_socket_read(sock, length=-1, timeout=-1)
기능
Client로부터 데이터를 수신합니다.
인수
|
인수명 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
sock |
socket.socket |
- |
server_socket_open()에서 리턴 받은 socket instance |
|
length |
int |
-1 |
수신할 데이터의 바이트 수
|
|
timeout |
int float |
-1 |
수신 대기 시간
|
리턴
|
값(res, rx_data) |
설명 |
|
|---|---|---|
|
res |
0 |
수신한 데이터의 바이트 수 |
|
-1 |
Client와 연결된 상태가 아닙니다. |
|
|
-2 |
수신 처리 중 socket.error 예외 발생 |
|
|
-3 |
지정한 수신 timeout 발생 |
|
|
rx_data |
수신한 데이터(byte 형) |
|
예제
Python
sock = server_socket_open(20002)
res, rx_data = server_socket_read(sock) # 데이터를 수신할때까지 무한 대기
# length 생략했으므로 수신된 데이터만큼 읽고,
# timeout 생략했으므로 수신될 때 까지 무한 대기 합니다.
# 데이터가 수신되면 (res = 수신 데이터 사이즈, rx_data=수신데이터) 반환됩니다.
res, rx_data = server_socket_read(sock, timeout=3) #데이터 수신될까지 3초간 대기
# 데이터가 3초안에 수신되면 (res = 수신 데이터 사이즈, rx_data=수신데이터) 반환
# 데이터가 3초안에 수신 안되면 (res = -3, rx_data=None) 반환
res, rx_data = server_socket_read(sock, length=64) #수신 데이터 64바이트 읽기
res, rx_data = server_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”가 됩니다.
server_socket_close(sock)