네트워크 타임아웃 설정
network_set_timeout
함수는 주어진 소켓을 통해 서버와 데이터를 읽고 쓰는 데 필요한 타임아웃을 설정하는 기능을 제공합니다. 이 타임아웃은 이벤트를 발생시키지 않으므로, 타임아웃을 처리하기 위해 알람 등을 사용해야 합니다. 이 값은 데이터 전송에만 영향을 미치며, 연결 타임아웃 값을 변경하려면 network_set_config()
함수를 사용해야 합니다.
문법
network_set_timeout(socket, read_timeout, write_timeout);
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
socket | 네트워크 소켓 ID | 사용할 소켓의 ID |
read_timeout | 실수 | 서버로부터의 데이터 전송 타임아웃(밀리초) |
write_timeout | 실수 | 서버로의 데이터 전송 타임아웃(밀리초) |
반환값
N/A
예제
network_set_timeout(sock, 3000, 3000);
위 코드는 변수 "sock"에 인덱스된 소켓을 통해 데이터 읽기 및 쓰기 타임아웃을 3초로 설정합니다.
활용 예제
- 서버와의 안정적인 연결 유지
gml var sock = network_create_socket(); network_set_timeout(sock, 5000, 5000); // 5초 타임아웃 설정
- 타임아웃 처리
gml if (alarm[0] == -1) { alarm[0] = 60; // 1분 후 타임아웃 알람 설정 }
- 데이터 전송 후 확인
gml var result = network_send(sock, data); if (result == -1) { // 전송 실패 처리 }
- 연결 재시도 로직
gml if (connection_failed) { network_set_timeout(sock, 10000, 10000); // 재시도 시 타임아웃 증가 }
- 다양한 소켓에 대한 타임아웃 설정
gml var sock1 = network_create_socket(); var sock2 = network_create_socket(); network_set_timeout(sock1, 2000, 2000); network_set_timeout(sock2, 4000, 4000);
이와 같은 방법으로 network_set_timeout
함수를 활용하여 네트워크 통신의 안정성을 높이고, 타임아웃 상황을 효과적으로 관리할 수 있습니다.