摘要:
tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具。 tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tc 阅读全文
摘要:
1 #define EPERM 1 // Operation not permitted 操作不允许 2 #define ENOENT 2 // No such file or directory 文件/路径不存在 3 #define ESRCH 3 // No such process 进程不存在 阅读全文
摘要:
I/O复用服务器 I/O 复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。它也可用于并发服务器的设计,常用函数 select() 或 epoll() 来实现。详情,请看《select、poll、epoll的区别使用》。 socket( 阅读全文
摘要:
多线程服务器是对多进程的服务器的改进,由于多进程服务器在创建进程时要消耗较大的系统资源,所以用线程来取代进程,这样服务处理程序可以较快的创建。据统计,创建线程与创建进程要快 10100 倍,所以又把线程称为“轻量级”进程。线程与进程不同的是:一个进程内的所有线程共享相同的全局内存、全局变量等信息,这 阅读全文
摘要:
一个好的服务器,一般都是并发服务器(同一时刻可以响应多个客户端的请求)。并发服务器设计技术一般有:多进程服务器、多线程服务器、I/O复用服务器等。 多进程并发服务器 在 Linux 环境下多进程的应用很多,其中最主要的就是网络/客户服务器。多进程服务器是当客户有请求时,服务器用一个子进程来处理客户请 阅读全文
摘要:
1、实用的 xargs 命令 在平时的使用中,我认为xargs这个命令还是较为重要和方便的。我们可以通过使用这个命令,将命令输出的结果作为参数传递给另一个命令。 比如说我们想找出某个路径下以 .conf 结尾的文件,并将这些文件进行分类,那么普通的做法就是先将以 .conf 结尾的文件先找出来,然后 阅读全文
摘要:
二、字符串和文本 1、使用多个界定符分割字符串 使用 方法: 使用 函数时候,需要特别注意的是正则表达式中是否包含一个括号捕获分组。 如果使用了捕获分组,那么被匹配的文本也将出现在结果列表中。比如,观察一下这段代码运行后的结果: 获取分割字符在某些情况下也是有用的。 比如,你可能想保留分割字符串,用 阅读全文
摘要:
一、数据解构和算法 1、解压赋值多个变量 采用解构的方法。可迭代对象才可以,变量数量与元素个数要一一对应,或者采用 万能接收。 2、解压可迭代对象赋值多个变量 如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 去掉最大值和最小值的方法: 3、保留最后N个元素 4、查找最大或最小的N个元素 py 阅读全文
摘要:
E R 绘制E R图首先要了解什么是实体,什么是属性,什么是联系. 1.首先实体是指现实世界中具有区分其他事物的特征或属性与其他实体有联系的实体,针对于数据库中的表而言实体是指表中一行一行特定数据,但我们在开发中,也常常把整个表称为一个实体. 2.属性可以理解为实体的特征,针对于数据库中的表而言属性 阅读全文
摘要:
Go 语言操作Mysql 连接mysql MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Mana 阅读全文
摘要:
GO 语言文件处理 Go 语言文件创建 os包提供了操作系统函数的不依赖平台的接口。设计为Unix风格的,虽然错误处理是go风格的;失败的调用会返回错误值而非错误码。通常错误值里包含更多信息。 创建目录 当前目录 Getwd返回一个对应当前工作目录的根路径。如果当前目录可以经过多条路径抵达(因为硬链 阅读全文
摘要:
GO 语言网络编程 Go 语言Socket编程 TCP Socket Go语言的 net 包中有一个 TCPConn 类型,可以用来建立 TCP 客户端和 TCP 服务器端间的通信通道,TCPConn 类型里有两个主要的函数: CPConn 可以用在客户端和服务器端来读写数据。 还有我们需要知道一个 阅读全文
摘要:
Go 语言并发 Golang从语言层面就对并发提供了支持,而goruntine是Go语言并发设计的核心。 Go语言的并发机制运用起来非常舒适,在启动并发的方式上直接添加了语言级的关键字就可以实现,和其他编程语言相比更加轻量。 进程&线程 A、进程是程序在操作系统中的一次执行过程,系统进行资源分配和调 阅读全文
摘要:
Go 语言锁机制 Go 语言互斥锁 Go语言的sync包中实现了两种锁 Mutex (互斥锁)和 RWMutex (读写锁),其中 RWMutex 是基于 Mutex 实现的,只读锁的实现使用类似引用计数器的功能。 互斥锁 Mutex 是互斥锁,有 Lock()加锁、Unlock()解锁两个方法,使 阅读全文
摘要:
Go 语言异常处理与测试 Go 语言异常处理 Go语言没有结构化异常,使用 panic 抛出错误,recover 捕获错误。 异常的使用场景简单描述:Go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个异常,然后正常处理。 panic: 1、内置函数 2、假如函数F中书写 阅读全文
摘要:
GO 语言反射 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。 支持反射的语言可以在程序编译期将变量的反射信息,如字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访 阅读全文
摘要:
Go 语言方法 go 语言方法定义 方法介绍 在 Go 语言中有一个概念和函数极其相似,叫做方法 。Go 语言的方法其实是作用在接收者(receiver)上的一个函数,接收者是某种非内置类型的变量。因此方法是一种特殊类型的函数。 接收者类型可以是(几乎)任何类型,不仅仅是结构体类型:任何类型都可以有 阅读全文
摘要:
Go 语言递归函数 递归,就是在运行的过程中调用自己。 Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。 斐波那契数列 阅读全文
摘要:
http://blog.itpub.net/31561269/viewspace 2638485/ 阅读全文
摘要:
GO 语言make和new Go语言中 new 和 make 是两个内置函数,主要用来创建并分配类型的内存。new 只分配内存,而 make 只能用于 slice、map 和 channel 的初始化。 new 在Go语言中,new 函数描述如下: new 函数只接受一个参数,这个参数是一个类型,并 阅读全文