프로젝트 설정

1. 프로젝트 설정하기

각 환경에 따라 프로젝트를 설정합니다.

▪️ C++

▪️ C#

▪️ Mac Xcode

▪️ Linux

▪️ Unity3D

2. PIDL 파일 작성하기

ProudNet에서 Remote Method Invocation(RMI)를 사용하려면 먼저 확장자가 PIDL인 파일을 만들어야 합니다.

PIDL 파일은 호스트 간 주고받을 메시지를 정의하는 소스 파일로, PIDL 파일을 컴파일을 하면 proxy와 stub이 만들어지게 되는데 이들을 호스트 프로그램에 포함시킬 것입니다.

PIDL 파일의 기본적인 사용 형식은 다음과 같습니다.

global <네임스페이스> <메시지의 첫 ID 값>
{
    ([특성 선언]) <함수 선언> ( [in] 함수 파라메터, ... );
}

네임스페이스 PIDL 파일을 컴파일했을 때 생성되는 proxy, stub 모듈이 갖는 C++ namespace 이름입니다. ProudNet은 2개 이상의 proxy, stub 을 한꺼번에 사용할 수 있는데, 그 대신 namespace로 모호성을 해결해야 하기 때문에 namespace 가 반드시 필요합니다. 예를 들어 'LobbyC2S' 라고 선언하면, '게임 로비에서 클라이언트-> 서버 호출 RMI를 선언함'을 의미합니다. 메시지의 첫 ID 값 RMI가 호출되면 각각의 RMI는 네트워크 메시지로 변환되는데, 이 메시지는 ID 값을 메시지 헤더에 갖게 됩니다. 주의할 점은, 프로세스 간 통신을 위해 가지고 있는 여러 개의 proxy, stub끼리 메시지 ID의 범위가 서로 겹치면 안됩니다. 특성 선언 [in] 선언을 반드시 해야 합니다. 함수 선언

RMI 함수 이름입니다. 함수 파라미터 C++ 함수 선언과 비슷합니다. 파라미터는 아래와 같은 선언이 허용되지만 포인터 타입은 허용되지 않습니다.

int a 
std::vector<int> b
CString c

PIDL 파일 예시는 다음과 같습니다.

rename cs(Proud::String, System.String);

global LobbyC2S 5000  // 메시지 ID가 5000부터 시작
{
    // ID=5001이 됩니다
    Logon([in] Proud::String name,[in] Proud::String password);
    RequestRoomList([in] int pageNumber); // ID=5002가 됩니다
    Chat([in] Proud::String name); // ID=5003이 됩니다.
}

PIDL 컴파일러를 실행합니다.

서버와 클라이언트를 시작해 ProudNet 사용 준비를 마칩니다.

Last updated

Was this helpful?