項目設定

1. 設定項目

根據每個環境設定項目。

▪️ C++

▪️ C#

▪️ Mac Xcode

▪️ Linux

▪️ Unity3D

2. 寫入 PIDL 文件

若要將Remote Method Invocation(RMI) 與 ProudNet 結合使用,您必須先建立一個副檔名為 PIDL 的檔案。

PIDL檔案是定義主機之間交換訊息的來源文件,編譯PIDL檔案時,會建立代理程式和存根,並將它們包含在主機程式中。

不要指定高於 60,000 的訊息第一個 ID 值。 超過 60,000 的值已在 ProudNet 的內部 PIDL 中指定為訊息 ID 值。 如果訊息ID重疊,AttachProxyAttachStub函數就會出現異常。

PIDL檔案的基本使用格式如下:

global <名稱空間> <訊息的第一個ID值>
{
    ([屬性聲明]) <函數聲明> ( [in] 功能參數, ... );
}

名稱空間 這是編譯 PIDL 檔案時所建立的代理程式和存根模組的 C++ 命名空間名稱。 ProudNet 可以同時使用兩個或多個代理程式和存根,但相反,必須使用命名空間來解決歧義,因此命名空間至關重要。 例如,聲明“LobbyC2S”意味著“在遊戲大廳中聲明客戶端->伺服器調用 RMI”。 訊息的第一個ID值 當呼叫 RMI 時,每個 RMI 都會轉換為網路訊息,該訊息的訊息頭中有一個 ID 值。 需要注意的一點是,用於進程間通訊的多個代理程式和存根的訊息 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