네트워크 서버 생성 함수
network_create_server
함수는 게임을 위한 새로운 네트워크 서버를 생성하는 기능을 제공합니다. 이 함수는 허용된 연결 프로토콜 중 하나를 사용하여 서버를 설정합니다. 아래에서 이 함수의 사용법과 예제를 설명합니다.
함수 설명
이 함수는 서버의 유형을 지정하고, 사용할 포트를 설정한 후, 동시에 허용할 최대 연결 수를 지정합니다. 최대 연결 수는 사용자가 결정할 수 있지만, 너무 많은 클라이언트가 연결되면 네트워크가 포화 상태가 되거나 장치의 CPU가 처리할 수 있는 능력을 초과할 수 있으므로 주의해야 합니다. 함수는 고유한 ID를 반환하며, 이 ID는 모든 후속 네트워크 함수에서 서버를 식별하는 데 사용됩니다. 연결이 실패하면 0보다 작은 값을 반환합니다.
문법
network_create_server(type, port, max_client);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
type | Socket Type Constant | 생성할 서버의 유형 (아래 상수 참조) |
port | Real | 서버가 사용할 포트 |
max_client | Real | 동시에 연결할 수 있는 최대 클라이언트 수 |
반환값
- 네트워크 소켓 ID
- 연결 실패 시 0보다 작은 값
예제
아래 코드는 TCP를 사용하여 포트 6510에서 서버를 생성하려고 시도합니다. 만약 해당 포트가 사용 중이라면, 사용 가능한 포트를 찾기 위해 루프를 돌립니다.
var port = 6510;
server = network_create_server(network_socket_tcp, port, 32);
while (server < 0 && port < 65535) {
port++;
server = network_create_server(network_socket_tcp, port, 32);
}
활용 예제
- 기본 서버 생성:
gml var server = network_create_server(network_socket_tcp, 6500, 10);
- 포트 자동 검색:
gml var port = 7000; var server; while (true) { server = network_create_server(network_socket_tcp, port, 5); if (server >= 0) break; port++; }
- UDP 서버 생성:
gml var udp_server = network_create_server(network_socket_udp, 8000, 20);
- 서버 종료:
gml network_destroy(server);
- 서버 상태 확인:
gml if (server >= 0) { show_message("서버가 성공적으로 생성되었습니다."); } else { show_message("서버 생성 실패."); }
이와 같은 예제들을 통해 network_create_server
함수를 활용하여 다양한 네트워크 서버를 설정하고 관리할 수 있습니다.