关闭
当前搜索:

lua学习笔记——文件I/O

1、lua中的文件I/O lua的文件I/O有两种模式,分别是简单模式和完全模式,他们的区别如下: 简单模式:只有一个默认输入文件和一个默认输出文件,并且提供对这些文件的操作。 完全模式:使用外部的文件句柄来实现。它以一种面向对象的形式,将所有文件操作定义为文件句柄的方法。完全模式可以同时对多个文件进行操作。2、打开和关闭文件 打开文件:file=io.open(filename,...
阅读(335) 评论(0)

lua学习笔记——coroutine

1、什么是协同程序 Lua中的协同程序(coroutine)与线程比较类似,拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其他大部分东西。 协同程序与线程的区别: 线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且在这个正在运行的协同程序只有在明...
阅读(115) 评论(0)

lua学习笔记——元表(Metatable)

1、什么是元表 table是lua中一个重要的数据结构,我们可以访问table内的值,但是却无法对两个table进行操作。因此lua提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。 元表就类似于C++中的运算符重载,可以对类对象进行操作,当然元表的功能更强大一些。有两个很重要的函数来处理元表: setmetatable(table,m...
阅读(605) 评论(0)

lua学习笔记—table

1、什么是table table是lua的一种数据结构,可以用来创建数组或映射。lua中的table使用的是关联型数组。关联数组的key值可以是除过nil之外任意类型的值。table的大小是不固定的,可以自己进行扩容。2、如何构造table 可以使用”{}”来构造一个空表,还可以在构造的同时进行初始化。 例1:用table创建数组,在lua中数组下标默认从1开始 结果...
阅读(409) 评论(0)

lua学习笔记(1)

一、table Table=数组+映射 在lua中,table是数组和映射为一体的数据类型,table既可以当做数组使用,也可以当做映射来使用。1、声明一个table类型 用花括弧{}来声明一个table 例:a={}2、table的赋值 table可以在定义的时候直接赋值,例: a={1,2,3,} 也可以单独赋值,但是注意table的下标必须是连续的,且从1开始,没有赋值...
阅读(605) 评论(0)

lua中的闭包

1、在了解lua中的闭包之前,我们先来看一个栗子!!! 在上述例子当中,我们用lua的闭包实现了一个计数器。如果之前没有了解过闭包的概念的话,你一定会对上述代码的结果感到奇怪,下面我们就来详细的解释一下闭包。2、第一类值(First class value ) lua中的函数就是所谓的”第一类值”。 在lua中定义一个函数就像创建普通类型值一样,lua中的函数就是一个值,它可以被存放在变量...
阅读(591) 评论(1)

require和dofile的区别

1在lua中require和dofile都是用来加载和执行模块的,那么他们有什么不同呢???差异: 在加载一个.lua文件的时候,require会先在package.loaded中查找此模块是否存在,如果存在则直接返回模块,如果不存在,则加载此模块。 dofile会对读入的模块编译执行,每调用dofile一次,都会重新编译执行一次。 require它的参数只是文件名,而dofi...
阅读(430) 评论(0)

session和cookie学习

1、什么是cookie和session http协议是一种无状态的协议,浏览器对服务器的每一次请求都是独立的。为了使得web能够产生一些动态信息,就需要保存”状态”,而cookie和session机制就是为了解决http协议无状态而产生。cookie是一种在客户端保存状态的方案,session是一种在服务器端保存状态的方案。2、cookie和session的区别 我们举个栗子来描...
阅读(446) 评论(0)

跳表分析与实现

一、什么是跳表 跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,可以被看做二叉树的一个变种,它在性能上和红黑树,AVL树不相上下,但是跳表的原理非常简单,目前在Redis和LeveIDB中都有用到。 在对有序顺序表进行搜索时,使用二分查找时间复杂度是O(logn),但是有序顺序表的插入和删除却是O(n)的算法。 在对有序链表进行搜索时,时间复...
阅读(1301) 评论(0)

剖析tinyhttpd服务器

tinyhttpd是一个小型的http服务器,虽然小但是功能也多,剖析tinyhttpd有助于理解http服务器的工作流程,加深对web服务器的认识。 一、原理图 二、源码剖析 下面是tinyhttpd的源码,自己对它进行了剖析,并对绝大多数内容加上了注释。#include #include #include #in...
阅读(584) 评论(0)

STL之set相关算法

STL一共提供了四种set相关的算法,分别是并集(union),交集(intersection),差集(difference),和对称差集(symmetric difference)。 STL的这四个算法所接受的set必须是有序区间,元素可以重复出现。即他们只能接受set/multiset容器作为输入区间。 1、set_unoin(求并集) 算法set_union可构造两个S1,S2这...
阅读(712) 评论(0)

(socks5)服务器代理模型

一、什么是GFW 防火城墙(GFW)是由原北邮校长设计出来的,GFW将国内的网络屏蔽起来了,所以整个国内的网络就像一个大的局域网,我们是不能够直接访问墙外的网站的。 二、GFW的原理 GFW能够屏蔽网络主要从以下几个方面入手。 IP封锁:IP封锁是指GFW维护的一张黑名单,只要发现向这些IP数据包,就立即进行丢弃。(像google、faceboook、youtobe这...
阅读(976) 评论(0)

工厂模式

工厂模式大致可以分为三类: 1、简单工厂模式 2、工厂方法模式 3、抽象工厂模式。 这三种模式逐步抽象,并且更具有一般性。 工厂模式有一种非常形象的描述,建立对象的类就像一个工厂,而需要被建立的对象就是一个个产品,在工厂中加工产品,使用产品的人不用关心产品是如何生产出来的。在软件中使用工厂模式的好处就是降低了模块之间的耦合。一、简单工厂模式: 简单工厂模式是工厂模式中最简单的一种...
阅读(943) 评论(0)

单例模式

一、什么是单例模式 有时候我们会遇到这样一种情况,一个类只能有一个对象被实例化,这时我们就可以使用单例模式了。 单例模式通过类本身来管理其唯一实例。在设计这个类的时候,让他只能创建一个实例并提供对此实例的全局访问。因此单例模式有两个最基本的条件是,确保一个类只有一个实例被创建,提供一个对实例的全局访问指针。二、常见的单例模式实现 常用的单例模式实现方法有两种,饿汉式和懒汉式。懒...
阅读(423) 评论(0)

ftp服务器实现

在模拟实现FTP服务器之前,我们先来了解一下有关FTP的功能以及工作原理。一、什么是FTP ftp(File Transfer Protocol)文件传输协议。ftp是应用层协议,基于C/S结构,底层使用TCP/IP协议来保证可靠性。 ftp使得主机间可以共享文件,简单来说就是可以在两台计算机之间来回拷贝文件。 ftp服务的基本过程就是:建立连接、传输数据与释放连接。由...
阅读(1304) 评论(2)
282条 共19页1 2 3 4 5 ... 下一页 尾页
    博客专栏
    文章分类
    最新评论