- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 tcpdump抓包
1、基础讲解在使用tcpdump之前,需要了解到两条命令iwconfig:查看所有无线网卡ifconfig:查看所有网卡可以看到,ifconfig得到的结果比iwconfig多一个,而且iwconfig侧重得到无线信息,而ifconfig侧重展示接口信息。2、下载安装tcpdumpsudo apt-get install tcpdump3、基本语法tcpdump有自
2017-06-22 22:53:05 611
原创 select多路IO复用
多路IO转接服务器也叫做多任务IO服务器。该类服务器实现的主旨思想是,不再由应用程序自己监视客户端连接,取而代之由内核替应用程序监视文件。主要使用的方法有三种:select、poll、epoll,这次介绍一下select。select函数原形:int select (int nfds, fd_set *readset, fd_set *writeset,fd_set *exce
2017-06-01 20:07:23 525
原创 extern原理
我们在C++头文件中经常看到一下代码://在.h文件的头上#ifdef __cplusplus#if __cplusplusextern "C"{ #endif #endif /* __cplusplus */ … … //.h文件结束的地方 #ifdef __cplusplus #if __cplusplus}#endif#endif /
2017-05-22 16:40:00 865
转载 http协议
1.基础概念篇1.1 介绍HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名
2017-05-21 19:51:40 623
原创 打洞机制
什么是打洞 什么是打洞,我们假设两个扣扣A,B,他们通信需要通过腾讯的服务器。也就是A发送消息给B的话,需要通过腾讯服务器进行一次转发,才到B那里。但像视频通话这要实时性要求比较高的通信,再用这种方式就不能保证他们通信的实时性,如果能想一个办法让他们直接通信,这样实时性就会高很多。但是我们所知的路由器是有一个保护机制的(对于陌生的IP第一次发送过来的数据包,会进行屏蔽或丢弃,主要是为了防止网...
2017-05-21 15:13:26 5948 3
原创 Socket粘包问题
什么时候要考虑粘包问题1.:如果利用tcp每次发送数据,就与对方建立连接,然后双方发送完一段数据后,就关闭连接,这样就不会出现粘包问题(因为只有一种包结构,类似于http协议)。关闭连接主要要双方都发送close连接(参考tcp关闭协议)。如:A需要发送一段字符串给B,那么A与B建立连接,然后发送双方都默认好的协议字符如”hello give me sth abour yourself”,然后
2017-05-21 15:05:59 788
转载 GIT介绍及常用命令
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Li
2017-05-21 03:02:17 315
原创 epoll介绍
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:define __F
2017-05-21 02:50:35 284
转载 GCC的原子操作
gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下type __sync_fetch_and_add (type *ptr, type value, ...)type __sync_fetch_and_sub (type *ptr, type value, ...)type __sync_fetch_and_or (type
2017-05-20 13:49:26 376
原创 nginx服务器安装搭建
1.安装nginx一共要4个包:pcre-8.39.tar.gz openssl-1.0.1t.tar.gz zlib-1.2.8.tar.gz nginx-1.10.1.tar.gz1.1安装pcre./configuremakesudo make install1.2安装zlib./configuremakesudo make install1.3安装o
2017-05-20 13:46:00 505
转载 wordpress安装在子目录中,通过根目录访问
apache下安装wordpress的时候出了一点问题。为了站点的结构清晰,我把wordpress安装在blog目录下,但是想直接通过域名www.sunwenwen.cn访问。原本想通过设置虚拟目录来实现,但是发现使用Alias只能映射为某个特定别名,映射根目录就会出错,图片载入不了。在网上找到了这篇文章。其实就是做了个重定向,翻译+总结如下:在网站根目录下(如/var/www/)建立或编
2017-05-20 13:44:07 3451
原创 Libevent简介与使用
Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支
2017-05-20 13:32:25 14142 4
原创 CType函数系列
ctype.h是C标准函数库中的头文件,定义了一批C语言字符分类函数(C character classification functions),用于测试字符是否属于特定的字符类别,如字母字符、控制字符等等。既支持单字节(Byte)字符,也支持宽字符。CType 采用内联方式编译,即转换代码是计算表达式的代码的一部分。在某些情况下不需要调用一个过程来完成转换,这会使执行速度更快。如果没
2017-05-20 13:17:28 1478
原创 linux信号含义
windows下有消息,那么相对Linxu下的是信号,每个信号都有一个名字,这些名字都是以SIG开头(signal的缩写),这些信号宏都被定义在了signal.h这些头文件中,每一个宏(正整数)代表一个信号,这里需要特别说明,没有编号为0(空信号)的信号,在linux下通过命令 kill -l 可以查看到所有的信号量。如:user@user-virtual-machine:~$ kill
2017-03-28 21:23:06 932
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人