為了方便序列化資料,特建立了inputstream 和 outstream 2種資料容器。
每個流在初始化的時候。都帶有位元組序屬性, 在寫入和讀取的時候,先處理再返回,這樣邏輯部分可以解決位元組序等問題。
output 在初始化的時候 建立乙個固定大小的快取區。 保持乙個流指標。 每次寫入新的資料,都copy資料到流指標處,然後指標向後偏移寫入的大小
input 同上。每次讀取。都偏移指標位置。
#define default_buffer_max 128
class fsoutputstream
}public:
void tobytes(void*);
size_t getlength();
void subbuffer(size_t start, size_t len);
void writelonglong(unsigned long long);
void writeint(int val);
void writelong(long val);
void writeshort(short val);
void writeuint(unsigned int);
void writeushort(unsigned short);
void writefloat(float val);
void writebyte(byte val);
void writedatas(const void*, size_t);
void writestring(char*, int);
void writestring(const char*);
void writestring(std::string str);
};
#include "fsoutputstream.h"
fsoutputstream::fsoutputstream(size_t length):m_ibufferlength(length), m_ipos(0), m_pdata(malloc(length))
void fsoutputstream::tobytes(void* out)
void fsoutputstream::scalebuffer()
void fsoutputstream::subbuffer(size_t start, size_t len)
void fsoutputstream::writestring(const char* data)
void fsoutputstream::writestring(char* data, int len)
void fsoutputstream::writeint(int val)
void fsoutputstream::writelong(long val)
void fsoutputstream::writelonglong(unsigned long long v)
void fsoutputstream::writeshort(short val)
void fsoutputstream::writeuint(unsigned int val)
void fsoutputstream::writeushort(unsigned short val)
void fsoutputstream::writefloat(float val)
void fsoutputstream::writebyte(byte val)
void fsoutputstream::writedatas(const void* data, size_t len)
memcpy((byte*)m_pdata + m_ipos, data, len);
m_ipos += len;
}
網遊伺服器框架(1)Session
因為不想去處理網路io 所以偷懶直接使用了 libevent作為網路庫。但是後果就是很多莫名其妙的bug無法明白。以後嘗試替換 首先 每乙個新連線 都會分配乙個 sessionid 作為流水號增長。相當於乙個client 然後統一放到乙個singlton的sessionmanager裡做統一處理 使...
通用網遊伺服器
通用網遊伺服器是適用於一類網遊的伺服器,如rpg網遊伺服器.通用伺服器提供的是適用於該類網遊的機制,與內容無關.特定於某乙個遊戲的內容由指令碼和配置檔案實現.目前在指令碼機制不完善的情況下,可以把特定的遊戲內容分離到動態鏈結庫中,實現機制與內容分開.這個通用的網遊伺服器還可以分成兩個部分 1.核心,...
通用網遊伺服器
通用網遊伺服器是適用於一類網遊的伺服器,如rpg網遊伺服器.通用伺服器提供的是適用於該類網遊的機制,與內容無關.特定於某乙個遊戲的內容由指令碼和配置檔案實現.目前在指令碼機制不完善的情況下,可以把特定的遊戲內容分離到動態鏈結庫中,實現機制與內容分開.這個通用的網遊伺服器還可以分成兩個部分 1.核心,...