![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术文章
lishaoyu
这个作者很懒,什么都没留下…
展开
-
TCP连接的终止----主动关闭
在正常情况下,TCP连接的关闭需要连接的两端进行四次分组交换,具体过程是:执行主动关闭的一端(A端)会首先发送FIN包给对端(B端),B端收到FIN包后会发送一个ACK包给A段;B段执行关闭操作,发送FIN给A端,A端发送一个ACK给B端,连接彻底关闭。分组交换和状态迁移如下图所示: 通常情况下,只有执行主动关闭的一端会进入TIME_WAIT状态,还有一种情况会导致连接的两端转载 2014-10-22 11:13:53 · 4932 阅读 · 0 评论 -
mongodb数据文件格式(二)
mongodb数据文件格式 本文适合于对mongodb有一定了解的朋友阅读。mongodb的数据文件存在dbpath选项指定的目录里。每个库(database)都有一系列的文件:dbname.ns, dbname.0, dbname.1, ...数据文件也叫pdfile,意思是Portable Data File。 www.2cto.com dbname.ns文转载 2015-10-20 19:38:49 · 853 阅读 · 0 评论 -
tcpdump非常实用的抓包实例
详细的文档见tcpdump高级过滤技巧基本语法========过滤主机--------- 抓取所有经过 eth1,目的或源地址是 192.168.1.1 的网络数据# tcpdump -i eth1 host 192.168.1.1- 源地址# tcpdump -i eth1 src host 192.168.1.1- 目的地址# tcpdump -i转载 2015-07-24 11:27:54 · 368 阅读 · 0 评论 -
Boost库中的Traits(is_float, is_class)
对以判断是不是某个基本类型(整数, 浮点, bool)可以参考下面代码:3. is_float[cpp] view plaincopytemplatetypename T> struct is_float : bool_typefalse>{}; #define IS_FLOAT(T) template : bo转载 2015-07-23 14:03:58 · 742 阅读 · 0 评论 -
operator new和operator new[]区别?
对于C++来说new操作分为两步:(1) 申请一块内存(operator new), 相当于malloc(2) 调用构造函数(placement new)而delete的操作也分两步(1') 调用析构函数(2') 释放内存,相当于free关于申请释放内存的部分我们可以不用想太多,直接理解把它们理解为malloc/free就行,要内存的时候只需传给它大小,释放的时候只转载 2015-08-02 12:20:13 · 519 阅读 · 0 评论 -
linux下函数调用栈Backtraces函数
BacktracesA backtrace is a list of the function calls that are currently active in a thread. The usual way to inspect a backtrace of a program is to use an external debugger such as gdb. However,转载 2015-08-02 12:22:18 · 634 阅读 · 0 评论 -
cmake用cotire设置gcc的预编译头
一、预编译头 当工程大了,单机编译速度会很慢。预编译头会提高很大的速度。相关原理这里不赘述,网上很多。(或者老夫有空的时候再补充)二、cmake设置gcc的预编译头 一开始google到一个国内同行写的cmake宏,用了下,貌似不是很好用。另外作者也表示还是有bug。 后来找到cotire。目前使用良好。 三、cot转载 2015-08-02 12:19:45 · 2794 阅读 · 0 评论 -
Java在游戏服务器开发中的应用
随着游戏市场的兴起,特别是网页游戏、手机游戏的崛起,对游戏开发技术的需求越来越多。网络游戏开发是一个庞大的体系,总体来说是客户端与服务器端。客户端是玩家接触的游戏图像显示端,服务器是处理游戏运行中的各种数据,由于一台服务器要支持众多玩家的请求,所以服务器的性能高低决定了同一个游戏的用户数量。我们公司选择使用Java做服务器开发语言,主要原因是:1.Java是跨平台的,方便部署;2.Java转载 2015-05-22 12:29:10 · 597 阅读 · 0 评论 -
window环境下glog的使用
先下载glog最新版,解压里面有*sln文件,如果你安装了VS2005以上版本都可以直接打开,编译即可得到libglog.dll和libglog.lib文件,拷贝文件到你的测试文件夹下,并拷贝src\windows\下的glog目录到你的工程文件下。 如下是一个测试代码, [cpp] view plaincopy转载 2015-04-29 22:59:22 · 435 阅读 · 0 评论 -
linux为用户添加sudoer
切换到root用户,进入etc目录 “cd /etc”为sudoers文件添加写入的权限:使用命令 chmod u+w sudoersroot ALL=(ALL) ALLlishaoyu ALL=(ALL) ALL (在root下面添加这行)chmod u=r-- sudoers 将文件权限改回来即可原创 2015-02-07 22:39:21 · 3788 阅读 · 0 评论 -
正则表达式 (Visual Studio)
Visual Studio 2005 其他版本 Visual Studio 2010Visual Studio 2008Visual Studio 2012正则表达式是查找和替换文本模式的一种简洁而灵活的表示法。Visual Studio“查找和替换”窗口的“查找内容”字段中可使用一组特定的正则表达式。在“快速转载 2014-10-19 14:06:12 · 1315 阅读 · 0 评论 -
GDB中应该知道的几个调试方法
七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充。一、多线程调试多线程调试可能是问得最多的。其实,重要就是下面几个命令:转载 2014-10-19 12:47:19 · 420 阅读 · 0 评论 -
再叙TIME_WAIT
之所以起这样一个题目是因为很久以前我曾经写过一篇介绍TIME_WAIT的文章,不过当时基本属于浅尝辄止,并没深入说明问题的来龙去脉,碰巧这段时间反复被别人问到相关的问题,让我觉得有必要全面总结一下,以备不时之需。讨论前大家可以拿手头的服务器摸摸底,记住「ss」比「netstat」快:shell> ss -ant | awk ' NR>1 {++s[$1]} END {f转载 2014-10-22 20:04:20 · 467 阅读 · 0 评论 -
linux Closing a Socket
SO_LINGER选项用来指明关闭基于连接的 socket 时的行为。默认,close 函数会立即返回,但当 socket 发送缓冲区残留数据时,close函数向缓冲区中写入 FIN 后,同样会立即返回,但 TCP 将会尽力发送完这些数据。When you have finished using a socket, you can simply close its file转载 2014-10-22 11:10:56 · 804 阅读 · 0 评论 -
Sublime Text 2支持GB2312和GBK,解决中文显示乱码问题
Sublime Text 2是一个非常不错的源代码及文本编辑器,但是不支持GB2312和GBK编码在很多情况下会非常麻烦。不过Sublime Package Control所以供的插件可以让Sublime Text 2几乎完美地支持CJK编码的文本。安装Sublime Package Control非常简单,在Sublime Text 2上用Ctrl+~打开控制台并在里面输入以转载 2016-01-09 09:43:55 · 402 阅读 · 0 评论