ARCEmu專案wow私服伺服器網路模組分析(一)

2021-05-31 21:42:56 字數 1157 閱讀 6330

/*

* multiplatform async network library

* * socketmgr - iocp-based socketmgr for windows.

* */

#ifndef socketmgr_h_win32

#define socketmgr_h_win32

#ifdef config_use_iocp

class socket;

class server_decl socketmgr : public singleton

void spawnworkerthreads();

void closeall();

void showstatus();

void addsocket(socket* s)

void removesocket(socket* s)

void shutdownthreads();

long threadcount;

private:

handle m_completionport;

set_sockets;

mutex socketlock;

arcemu::threading::atomiccounter socket_count;

};#define ssocketmgr socketmgr::getsingleton()

typedef void(*operationhandler)(socket* s, uint32 len);

class socketworkerthread : public threadbase

;void server_decl handlereadcomplete(socket* s, uint32 len);

void server_decl handlewritecomplete(socket* s, uint32 len);

void server_decl handleshutdown(socket* s, uint32 len);

static operationhandler ophandlers[num_socket_io_events] =

;#endif

#endif

先上原始碼,等會分析。。。

微服務之搭建nexus私服

在這裡我們搭建nexus來作為我們的私服,用於儲存構建好的服務映象。mkdir mst cd mst docker run d u root v pwd nexus data nexus data p5000 5000 p8081 8081 sonatype nexus3 可以看到基於映象安裝nex...

父子級專案打包及上傳私服問題

後記 如果有父子級的專案,比如父級為frame parent,子級為frame a和frame b,並且frame a依賴frame b。直觀處理步驟 1.將frame b上傳 deploy 到nexus私服 2.打包 package frame a。但是這時步驟2出錯。解決辦法 在frame pa...

對WOW服務端模擬器的思考

近來,對wow現有的模擬器的看法又有了新的變化。ascent接觸了很久,執行機制也算比較了解,但是始終有個遺憾。先簡述一下結構 iocp負責網路io,多執行緒處理,加入封包佇列。主迴圈 單執行緒 更新每個會話,讀取封包,並交給對應的handle函式 還是主迴圈的執行緒 週期完畢,檢查如果花的時間短,...