游戏服务器笔记

来源:互联网 发布:贵州大数据产业 编辑:程序博客网 时间:2024/06/12 22:03
1. sigset_t new_mask;
    sigfillset(&new_mask);
    sigset_t old_mask;

    pthread_sigmask(SIG_BLOCK, &new_mask, &old_mask);

    屏蔽所有信号,对于一些需要网络服务的线程,可以防止意外的中断。

2.

boost::program_options

用于解析命令行参数的相关设置。

3.使用系统默认的设置调用setlocale(LC_ALL,"");

4.int getBodyLen(int hdrOffset)
    {
        LOG_DEBUG("real body len: " << (ntohl(*(int *)(m_rcvBuff_ + hdrOffset)) & 0x7FFFFFFF));
        return ntohl(*(int *)(m_rcvBuff_ + hdrOffset)) & 0x7FFFFFFF;
    }


*(int *)(m_rcvBuff_ + hdrOffset) 这实际是取出内存中的第一个4字节,也就是32位数转为int,

从名字我们可以看出,第一个字节存储的是这个包的长度,经过验证,果然是的。

0 0