프로젝트 설정

1. 프로젝트 설정하기

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

▪️ C++

▪️ C#

▪️ Mac Xcode

▪️ Linux

▪️ Unity3D

2. PIDL 파일 작성하기

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

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

메시지 첫 ID 값을 60,000 이상으로 지정하지 마세요. 60,000 이상의 값은 ProudNet 내부 PIDL의 메시지 ID값으로 이미 지정되어 있습니다. 메시지 ID가 겹칠 경우 AttachProxyAttachStub 함수에서 exeption이 발생합니다.

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