随笔分类 - Linux/脚本语言
摘要:1.变量 类变量紧接在类名后面定义,相当于java和c++的static变量 实例变量在init里定义,相当于java和c++的普通变量 2.日期 #coding:utf-8 import time import datetime #日期格式化,time.strftime(format[, t]),
阅读全文
摘要:滑动窗口(sliding window) 滑动窗口是用于流量控制的,发送端根据接收端的处理能力发送数据,不至于造成过多的丢包。 是发送方和接收方间的协调,对方的接收窗口大小就是自己的发送窗口大小。 在TCP头中有一个字段window,这个字段就是接收端告诉发送端自己还有多少缓冲区可以接收数据。发送端
阅读全文
摘要:接上篇文章,介绍一些实用的技巧和注意点。首次用MarkDown编辑,感觉行空隙太大,不是那么好看。GET/POST前后端会有数据交互,使用JQuery来实现get/post请求 GET 方法1:通过正则表达式匹配url传递参数$.ajax({ type:"GET", url:"/sear...
阅读全文
摘要:以前用web.py(另外一款轻量级web开发框架)做一个监控管理平台,没有做特别的记录就不好拾起来。最近做一个日志聚合系统,使用的是django,这次就记下来,方便查询。Django是一个高效的web开发框架,上手容易,便于调试和发布。设计模式它的设计遵循经典的web设计架构-MVC(Model-v...
阅读全文
摘要:1.并发TCP最大连接数 一个TCP连接有一个四元组唯一标识{local_ip, local_port, remote_ip, remote_port} client端建立连接请求时,通常让系统分配一个空闲的本地端口,该端口是独占不共享的,端口类型是unsigned short,共65535个可用,
阅读全文
摘要:信号信号是进程间相互传递消息的一种方法,只是用来通知某进程发生了什么事件,并不给进程传递任何数据。#include #include #include typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandl...
阅读全文
摘要:应用程序从网络中拿数据,要经历两个阶段:1、等待数据准备好-分组到达,被拷贝到内核缓冲区,组装数据报;2、数据从内核缓冲区拷贝至用户态应用程序的缓冲区。Unix下五个I/O模型:阻塞I/O:进程调用recvfrom,此系统调用直到数据报到达且拷贝到应用缓冲区(或出错)才返回。非阻塞I/O:应用程序调...
阅读全文
摘要:1. 常用函数#include //open a directory//failed-NULL, other-return a DIR streamDIR *opendir (const char* path_name);//close the directory stream//0 succeed...
阅读全文
摘要:一个比较实用的连接函数,支持host为域名。#include #include #include #include #include #include #include #include using namespace std;int my_connect(const char *host, int...
阅读全文
摘要:实例:client#include #include #include #include const int MAXLINE = 100;void str_cli(int sockfd) { char recvline[MAXLINE]; string str; getline(cin, st...
阅读全文
摘要:#include pid_t gettid(){ return syscall(SYS_gettid); }
阅读全文
摘要:多线程情况下,往往需要使用互斥变量来实现线程间的同步,实现资源正确共享。linux下使用如下变量和函数//条件变量pthread_cond_tint pthread_cond_init (pthread_cond_t *c, const pthread_condattr_t *a)int pthre...
阅读全文
摘要:获取和设置套接口选项的方法有:getsockopt/setsockoptfcntlioctlgetsockopt/setsockopt这两个函数仅用于套接口(socket)的设置,另外两个函数可以对任意的文件描述符进行设置。#includeint getsockopt(int sockfd, int...
阅读全文
摘要:select和epoll属于I/O多路复用模型,用于持续监听多个socket,获取其IO事件。select(轮询)该模型轮询各socket,不管socket是否活跃,随着socket数的增加,性能逐渐下降。#include #include int select (int maxfdpl, fd_s...
阅读全文
摘要:TCP编程示例图:头文件:常用头文件"arpa/inet.h", "sys/socket.h","netinet/in.h"函数原型:int socket(int family, int type, int protocol)family:通信协议族,IP protocol family为AF_IN...
阅读全文
摘要:TCP三路握手(SYN、ACK):TCP终止连接(四次握手,2个FIN、2个ACK):TCP的TIME_WAIT状态:Who-主动关闭方,When-接收到被动端的FIN,Why-实现终止TCP全双工连接的可靠性(可能需要重发ACK)/允许老的重复分节在网络中消失,How Long-2MSL(1m-4...
阅读全文
摘要:linux下常用线程库为POSIX线程(pthread),可运行于Solaris、FreeBSD、Linux 等平台,Windows平台亦有pthread-win32可供使用。常用类型:#include pthread_t pthread_attr_tpthread_t代表线程ID,不同平台是不同的...
阅读全文
摘要:#include #include using namespace std;int main() { int result = 0; char hostName[100]; struct hostent* host = NULL; result = gethostname(hostName,...
阅读全文
摘要:1.查看cpu个数 2.查看任务及系统情况 第一行是任务队列信息,等同于uptime命令;第二三行为进程和CPU信息;第四五行为内存信息。 补:load average-系统负载,就是任务队列的平均长度,分别是1分钟、5分钟、15分钟内的平均值。load average小于CPU个数,属于正常,超过
阅读全文
摘要:1.统计重复行的个数 2.查看压缩文件 3.查看2个文件的交集、差集 comm用于比较两个有序文件,默认第一列为第一个文件独有的元素,第二列为第二个文件独有的元素,第三列为共有元素,语法:comm 选项 参数 -1:不显示在第一个文件出现的内容 -2:不显示在第二个文件出现的内容 -3:不显示同时在
阅读全文