摘要: 一、基本知识1.第一个程序:print("hellolua");在交互模式下直接运行:>print("hellolua")hellolua--输出保存在文件中运行:$luahello.luahellolua--输出2.chunks:*定义:trunks指运行的语句块,一个文件,一个函数或是运行模式下每行语句、语句组合都是trunks;*语句之间的分割府(";")可有可无,为了可看性可维护性一般加“;”分割。*交互模式运行trunks:Lua5.1.4Copyright(C)1994-2008Lua.org,PUC-Rio> 阅读全文
posted @ 2013-07-12 23:10 天天520 阅读(4476) 评论(1) 推荐(1) 编辑
摘要: 一、容器的选择 标准STL序列容器:vector,string,deque,list。其中前三种是连续内存容器,list是节点内存容器(非连续内存) 序列容器特点:任意位置删除、插入元素;插入、删除时元素会移动;元素是有顺序的,可以随机访问(list除外),vector数据内存兼容C,string支持引用计数,list支持多元素插入事务性语义(连续内存容器也支持但是性能差);基于节点的非删除迭代器指向元素,迭代器不会失效。 标准STL关联容器:set,mutiset,map,mutimap。二、编写容器无关代码 1. 使用typedef 如:std::vector<int> 可以写 阅读全文
posted @ 2013-01-24 00:08 天天520 阅读(261) 评论(0) 推荐(0) 编辑
摘要: #include <functional>#include <algorithm>using namespace std;string& lTrim(string &ss){ string::iterator p=find_if(ss.begin(),ss.end(),not1(ptr_fun(isspace))); ss.erase(ss.begin(),p); return ss;}string& rTrim(string &ss){ string::reverse_iterator p=find_if(ss.rbegin(),ss. 阅读全文
posted @ 2012-10-13 22:02 天天520 阅读(414) 评论(0) 推荐(0) 编辑
摘要: #pragma oncetemplate <typename T>class Singleton{public: static T *GetInstance() { if (NULL == s_ins) { s_ins = new (T)(); atexit(Destory); } return s_ins; }private: static void Destory() { delete s_ins; s_ins = NULL; ... 阅读全文
posted @ 2012-10-08 20:24 天天520 阅读(2340) 评论(0) 推荐(0) 编辑
摘要: 1.典型的UDP客户/服务器程序函数调用图2. recvfrom和sendto函数#include <sys/socket.h>ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_... 阅读全文
posted @ 2012-08-11 23:21 天天520 阅读(3074) 评论(0) 推荐(1) 编辑
摘要: 1. 概述I/O复用使用场合:当客户处理多个描述符(通常是交互式输入和网络套接字)时,必须要使用I/O复用;一个客户同时处理多个套接字(比较少见);如果一个TCP服务器既要处理监听套接字,又要处理已连接的套接字,一般要使用I/O复用;如果一个服务器要处理多个服务或者多个协议,一般要使用I/O复用另外I/O复用并非只限于网络编程,还有许多重要程序也会用到这项技术。2. I/O模型阻塞式I/O模型非阻塞式I/O模型I/O复用模型信号驱动I/O模型异步I/O模型3. select函数1)函数作用:允许进程指示内核等待多个事件中的一个发生, 并只在有一个或多个事件发生,或通过定时唤醒它。(前面说的同时 阅读全文
posted @ 2012-08-08 11:05 天天520 阅读(1375) 评论(0) 推荐(0) 编辑
摘要: 1. IPV4地址结构:#include <netinet/in.h>struct in_addr{ int_addr_t s_addr; //一般为uint32_t};struct sockaddr_in{ uint8_t sin_len; //一般用不上 sa_family_t sin_family; //通常是uint_8 in_port_t sin_port; //一般为uint16_t struct int_addr sin_addr; c... 阅读全文
posted @ 2012-08-05 11:55 天天520 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 1. TCP回射示例服务器代码View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>#define SRV_PORT 8888#define MAXLINE 4096void str_echo(int fd);int main(int argc, char **argv){ int listenfd = sock 阅读全文
posted @ 2012-08-05 11:37 天天520 阅读(864) 评论(0) 推荐(0) 编辑
摘要: 1. socket函数#include <sys/socket.h>//成功返回非负,失败返回-1int socket(int family, int type, int protocol);参数说明:family指明协议族取值如下图type指明套接字类型protocol指明协议当Protocol值为0时系统根据family和type的组合指定默认值关于AF_XXX和PF_XXX AF_前缀表示地址族,PF_前缀表示协议族。历史想法:单个协议族可以支持多个地址族,PF_值用于创建套接字,AF_值用于套接字地址结构。实际上支持多个地址族的协议族从来没实现过,现<sys/sock 阅读全文
posted @ 2012-08-05 08:43 天天520 阅读(2385) 评论(0) 推荐(0) 编辑