- 博客(10)
- 收藏
- 关注
原创 reuseaddr与端口复用漏洞
1、当有一个有相同本地地址和端口的socket1处于TIME_WAIT状态时,而你启 动的程序的socket2要占用该地址和端口,你的程序就要用到该选项。 2、SO_REUSEADDR允许同一port上启动同一服务器的多个实例(多个进程)。但 每个实例绑定的IP地址是不能相同的。在有多块网卡或用IP Alias技术的机器可 以测试这种情况。
2012-09-15 22:03:13 1834
原创 msql的一些基本知识
1. 索引的实现 索引都是使用b+树实现的 myisam实现分离索引,把索引单独保存在一个文件中,并且进行压缩,非主键的查询比较快 innodb实现cluster索引,文件本身就是按照索引排列的,主键查询比较快,但是非主键查询需要 2. myisam和innodb的区别 myisam使用索引和数据分离实现,并且对索引进行压缩,文件易于替换 innodb把索引和数据捆绑实现,索引
2012-02-07 14:53:35 870
原创 一些程序员细节问题
1. linux在调用pthread_mutex_lock的时候得到信号产生软件中断,信号处理函数结束后,pthread_mutex_lock是被自动重入还是会返回eintr错误? 答案在这里: http://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_mutex_lock.html pthread_mutex_lock不会
2012-02-07 14:16:21 698
原创 effective c++总结
1. define函数容易出现不易控制的错误 2. new和delete使用的时候比malloc和free多调用了析构和构造函数 3. set_new_handler可以处理内存不足的情况 4. 可以使用void* __cdecl opterator new(size_t size, ___FILE__, ___LINE__)重载new函数,或者使用类void* operator new(s
2012-02-01 18:08:22 667
原创 通用性IOCP网络模型
同步,异步,阻塞,非阻塞之间的关系。 所谓同步和异步,就是应用程序等待api与否,应用程序等待api,就是同步,不等待,就是异步。 假设一个api需要10秒钟执行完成,应用程序调用api,操作系统切换到内核态,同时挂起应用程序,直到操作系统执行完毕,把结果返回给应用程序,就是同步调用。 而应用程序把api请求投递给操作系统,操作系统收到请求后执行api,此时操作系统来决定要不要挂起这个应用程
2012-01-19 17:44:07 2232
原创 类函数和成员的内存位置
每个类c的成员都保存以下内存: 基类1虚函数表地址 基类1成员 基类2虚函数表地址 基类2成员 ... 自身成员 虚基类函数表地址 虚基类数据成员 通过类调用某函数F,先判断F是不是虚函数 1. 如果是虚函数,则通过查找虚表,计算偏移量,得到一个地址p,这个地址p指向的是具体函数的实现。 2. 如果不是虚函数,则直接通过该类的函数指针,运行即可(类的函数调用实际上是通
2012-01-19 11:34:33 1052
原创 简单的 Winsock 应用程式设计
TCP连接建立与关闭 相信各位读者现在对於 Winsock 的定义、系统环境,以及一些 Winsock Stack及 Winsock 应用程式,都有基本的认识了。接下来笔者希望能分几期为各位读者介绍一下简单的 Winsock 网路应用程式设计。我们将以 Winsock 1.1
2011-08-19 14:41:33 776
原创 iocp(转)
问题现在网络游戏很流行,上万个玩家同时在线的情况很常见,网游服务器如何处理这么巨量的数据?!要是读过了"Winsock I/O方法"这篇文章,可以了解到套接字I/O模型中的:select,WSAAsyncSelect,WSAEventSelect,Overlapped I/O模型一次最多都只能支持6 4个套接字!这些模型显然不能胜任。而Winsock I/O模型中的"Completion port
2010-04-29 15:34:00 1797
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人