GS與MS之間通訊

2022-03-15 03:28:18 字數 951 閱讀 2962

gs與ms之間通訊

注意gs與ms是兩個執行緒,現在是每個map乙個執行緒,他們之間是內部協議進行通訊的,那既然是兩個執行緒那如何通訊呢,看了net程序通訊這個就比較簡單了

舉個例子

m_pmap->gs2msdata(gs2ms_add_player, m_nchannelid, (void*)&ractorex, sizeof(ractorex));//

傳送玩家上線包

void map::gs2msdata(int cmd, int channel_id, void* data, int

len)

void

}那看看ms這邊是如何取的

在share初始化的時候開啟了乙個執行緒,這個執行緒可以說整個map的資料都是這裡面處理的

return

false

; }

return

true;}

if(getdatafromqueue(&pkt))

continue;}

//至此從gs到ms這邊的包就是這樣處理的

那從ms到gs的包

從map需要發到gs的包也不多,還有一種通過gs轉到map的

sendcmd2gs(ms2gs_prop_mgr, nchannelid, pdata, nlen);

void sendcmd2gs(int ncmd, int nchannelid, void* pdata, int

nlen);}

那gs是如何去的呢

void share::procmapsenddata()//

這個是gs驅動的}//

開來發包都是雙向的,需要兩個佇列,這個在net那邊也是的

//其次就是需要額外的記憶體放到佇列中,因為不可能去操作同一塊記憶體的,要麼自己new,要麼從記憶體池中分配

////

剛開始不懂程式就是這些記憶體問題沒有搞清楚

程式之間通訊

訊息作用 在程序間共享資料 內部通過建立記憶體對映檔案 訊息介紹 需要用到的資料結構 型別 typedef struct tagcopydatastruct copydatastruct,pcopydatastruct 結構體引數說明 dwdata ulong 儲存乙個數值,可以用來作標誌等 lpd...

EXE之間通訊

而且還有好幾種方法。1 傳送訊息傳遞 2 共享記憶體傳遞 3 使用com程序外伺服器 這篇文章主要說明一下,如何利用傳送訊息使兩個exe完成通訊。其他兩個方法感興趣可以搜尋下,都可以找到相應 傳送端 public partial class mainwindow window structlayou...

元件之間通訊

一 父元件向子元件傳遞資料 在 vue 中,可以使用 props 向子元件傳遞資料。子元件部分 這是 header.vue 的 html 部分,logo 是在 data 中定義的變數。如果需要從父元件獲取 logo 的值,就需要使用props logo 在 props 中新增了元素之後,就不需要在 ...