关闭

一日一点RakNet(26)--Preprocessor Directives

标签: allocation64bitbufferfiledeletessl
980人阅读 评论(0) 收藏 举报
分类:

预处理指令

 

      RakNetDefinesOverrides.h文件中定义了下面这些值。在RakNetDefines.h中这些都是作为默认设置。在NativeFeatureIncludes.h文件中,不要编译那些你用不到的功能。

 

// 定义 __GET_TIME_64BIT 变量使得RakNet::TimeMS使用64位保存数据,而不是32位值。

// 32位值在使用了5周之后会发生溢出错误。但是,使用64位值会使得发送时间所使用的带宽加倍

// 因此不要轻易使用这个值,除非你有充分的原因。如果使用的是iPod Touch TG,注释掉这个定义。

// 更多内容参考http://www.jenkinssoftware.com/forum/index.php?topic=2717.0
//
这个值的定义在所有的系统上必须相同,否则无法实现连接通信。

#define __GET_TIME_64BIT 1

// 如果想要剥去文件和LINE信息对于EXE 的内存追踪,定义 _FILE_AND_LINE_ 0

#define _FILE_AND_LINE_ __FILE__,__LINE__

// BitStream中不支持字节序交换定义 __BITSTREAM_NATIVE_END值,

// 如果要使系统加速,则定义这个值。

// 除非你想要不同的字节序系统进行相互连接时才将这个值设置为可用。默认设置不可用

// #define __BITSTREAM_NATIVE_END

// 使用new delete之前用于_alloca的最大栈值。

#define MAX_ALLOCA_STACK_ALLOCATION 1048576

// 使用WaitForSingleObject函数代替sleep函数

// 定义这个值,可以使得系统表现更好,CPU使用率较小,但是RakNet 的性能较差

// 如果注释掉这个定义,CPU使用时间增加,但是RakNet响应更快,更加及时。

#define USE_WAIT_FOR_MULTIPLE_EVENTS

// 取消注释,使用RakMemoryOverride用于用户内存追踪,参考RakMemoryOverride.h了解更多信息。

#define _USE_RAK_MEMORY_OVERRIDE 0

// 如果定义了,OpenSSL可以用于TCPInterface类。要使用SendEmail类必须设置这个定义。注意OpenSSL带有自己的授权限制,这点需要注意。

// 如果你不同意使用OpenSSL的授权限制,则不要定义这个值。使用的话需要将头文件搜索路径设置加上DependentExtensions\openssl-0.9.8g

#define OPEN_SSL_CLIENT_SUPPORT 0

// 执行malloc/free的门限值,而不是将数据压进bitstream类的固定栈中。

// 任意的大小,仅仅拿出一些比大多数包都大的

#define BITSTREAM_STACK_ALLOCATION_SIZE 256

// 如果你不想用,或修改调试用的输出方法,可以定义RAKNET_DEBUG_PRINTF

#define RAKNET_DEBUG_PRINTF printf

// 支持的最大本地IP地址数

#define MAXIMUM_NUMBER_OF_INTERNAL_IDS 10

// 这个定义控制用于每一个连接的最大内存数。如果比这个值更大,许多数据包将被发送,但是不会有确认,那么确认就没有了作用

#define DATAGRAM_MESSAGE_ID_ARRAY_LENGTH 512

// 这个值定义了可靠用户消息的最大数,这个最大数是某一时刻可以在线上传输的可靠用户消息的最大数

#define RESEND_BUFFER_ARRAY_LENGTH 512
#define RESEND_BUFFER_ARRAY_MASK 511

// 如果你想要使用RakMemoryOverride链接到DLMalloc 则需要定义下面的这个值

// #define _LINK_DL_MALLOC

// 其他的变通方案参考http://support.microsoft.com/kb/274323
//
如果在RakNet::GetTime()之间发生两次调用,这个delta会被返回

// 注意:如果你设置一个断点暂停RakPeerUpdateNetworkLoop()线程

// 这会导致ID_TIMESTAMP 暂时变得不十分准确。

// 这个值定义在RakNetDefinesOverrides.h文件中,使得它可用定义为非零,这个功能不可用则定义为0。

#define GET_TIME_SPIKE_LIMIT 0

// 使用滑动窗口代替基于拥塞控制ping
#define USE_SLIDING_WINDOW_CONGESTION_CONTROL 1

// 当一个大的消息到达时,为整个块预分配内存。

// 对于大消息,这种机制不需要重组数据报,浪费时间,但是很容易受到攻击者攻击,造成主机耗尽内存。

#define PREALLOCATE_LARGE_MESSAGES 0

 

By 北洋小郭

转载请注明出处,切勿用于商业。谢谢!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:402230次
    • 积分:6001
    • 等级:
    • 排名:第4385名
    • 原创:127篇
    • 转载:52篇
    • 译文:63篇
    • 评论:36条