3 摩天轮的思念

尚未进行身份认证

暂无相关描述

等级
TA的排名 2w+

shell脚本实现彩色进度条

产生进度条的元素:1.一个不断向右增长的容器,可以直观看出当前的进度。2.一个反应进度的百分比,在这里用到转义字符"%%",代表的是"%"3.一个标志,反应该进度是正在运行还是卡死,在程序中体现的是char*label="-\\|/";,是顺时针输出.

2017-07-05 10:06:03

内存泄露、内存溢出以及解决方法

内存溢出即用户在对其数据缓冲区操作时,超过了其缓冲区的边界;尤其是对缓冲区写操作时,缓冲区的溢出很可能导致程序的异常。A)比如在程序中多使用strcpy_s、memcpy_s等具有缓冲区大小检查的函数,去取代strcpy、memcpy等;B)给工程设置编译选项/WX开启(“将警告视为错误”),严格要求自己,这样很可能避免了不少潜在的bug;C)对自己的代码做好单元测试

2017-07-03 11:28:24

素数的求解方法:

一、朴素判断素数算法就判断素数而言,事实上是非常简单的了。根据定义,判断一个整数n是否是素数,只需要去判断在整数区间[2,n-1]之内,是否具有某个数m,使得n%m==0。代码可以这么写

2017-07-02 23:10:50

STCP与TCP协议

(1)首先SCTP和TCP之间的最大区别是SCTP的连接可以是多宿主连接的,TCP则一般是单地址连接的(2)其次SCTP是基于消息流,而TCP则是基于字节流。(3)在网络安全方面,SCTP增加了防止恶意攻击的措施。不同于TCP连接采用的三次握手机制,SCTP连接采用四次握手机制,有效的防止了类似于SYNFlooding的防范拒绝服务攻击。

2017-07-01 15:52:01

linux命令之eval

eval可以读取一连串的参数,然后按照参数特性来执行。参数数目不限,彼此之间用分号隔开。eval会对后面的cmdLine进行两遍扫描,如果在第一遍扫面后cmdLine是一个普通命令,则执行此命令;如果cmdLine中含有变量的间接引用,则保证简介引用的语义。也就是说,eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令。因此,eval命令适用于那些一次扫描无法实现其功能的变量。

2017-07-01 14:54:48

I/O多路转接之poll服务器

函数说明:#include<poll.h>intpoll(structpollfd*fds,nfds_tnfds,inttimeout);参数说明:fds:是一个structpollfd结构类型的数组,用于存放需要检测其状态的Socket描述符;每当调用这个函数之后,系统不会清空这个数组,操作起来比较方便;特别是对于socket连接比较多的情况下,在一定程度上可以提高

2017-06-30 15:25:37

]I/O多路转接(二)之epoll服务器

epoll是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4)isanewAPIintroducedinLinuxkernel2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。

2017-06-29 22:39:44

I/O多路转接(一)之select_server

select模型的特点:(1)可监控的文件描述符个数取决与sizeof(fd_set)的值。(2)将fd加入select监控集的同时,还要再使用一个数据结构array保存放到select监控集中的fd。(3)可见select模型必须在select前循环array(加fd,取maxfd),select返回后循环array(FD_ISSET判断是否有时间发生)。

2017-06-28 15:09:47

高级I/O模型(2)--dup/dup2

dup和dup2是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。这两个函数的原形如下:利用函数dup,我们可以复制一个描述符。传给该函数一个既有的描述符,它就会返回一个新的描述符,这个新的描述符是传给它的描述符的拷贝。这意味着,这两个描述符共享同一个数据结构。

2017-06-28 14:06:39

linux之UDP_server

UDP它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。**实现确认机制、重传机制、窗口确认机制**。

2017-06-26 14:10:27

高级I/O模型(1)--socketpair

非阻塞IO,纪录锁,系统V流机制,I/O多路转接(select/poll),readv和writev函数以及存储映射IO(mmap),这些统称为高级IO。pipe用来创建管道,但是单个管道只能单向通信,⼀端用于读,⽽而另一端用于写。如果要实现进程双向通信,必须创建一对管道。而socketpair则可以⽤用来创建双向通信的管道,头文件:

2017-06-25 15:56:20

Linux--进程池,线程池

池的概念:由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正是运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。

2017-06-24 19:35:23

多进程以及多线程socket编程

多进程,多线程socket编程与单进程不同的只是服务器端的不同,客户端是一样的。多进程:父进程fork子进程,子进程退出,但是子进程的子进程仍在运行,变成了孤儿进程,由1号进程回收,父进程不用等待子进程的子进程的退出,它俩是爷孙进程,不用回收子进程。多线程:不用关闭多余的文件描述符表,进程有两张文件描述符表,而线程只有一张文件描述符表,共享进程的文件描述符表,因此不用关闭多余的文件描述符表。

2017-06-23 11:40:28

单进程socket编程

在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socketpair就唯一标识一个连接。

2017-06-22 23:03:31

linux命令之Xargs用法详解

之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:find/sbin-perm+700|xargsls-lxargs可以读入stdin的资料,并且以空白字元或断行字元作为分辨,将stdin的资料分隔成为arguments。

2017-06-21 12:58:24

哈希桶的实现

【开散列法】开散列法又叫链地址法(开链法)。开散列方法首先对关键码集合用某一个散列函数计算他们的存放位置。若设散列表地址空间的所有位置是从0到m-1,则关键码集合中的所有关键码被划分为m个子集合,通过散列函数计算出来的具有相同地址的关键码归于同一子集合。称同一子集合中的关键码互为同义词,每一个子集合称为一个桶。通常各个桶中的表项通过一个单链表链接起来,亦称为同义词子表。

2017-06-20 12:32:29

搜索结构之哈希表(线性探测法)

散列表(Hashtable,也叫哈希表),是根据关键码值(Keyvalue)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

2017-06-20 12:01:58

TCP的三次握手与四次挥手

为什么建立TCP连接需要三次握手?原因:为了应对网络中存在的延迟的重复数组的问题例子:假设client发起连接的连接请求报文段在网络中没有丢失,而是在某个网络节点长时间滞留了,导致延迟到达server。本来这是一个已经失效的连接报文,但是server接收到这个连接报文之后,误认为client发起了新的连接,于是向client发送确认报文段。此时因为没有了连接的3次握手,client不会对serve

2017-06-20 08:08:56

TCP协议中的定时器

TCP协议中的定时器:(1)连接建立(connectionestablishment)”定时器(2)“重传(retransmission)”定时器(3)“延迟ACK(delayedACK)”定时器(4)“持续(persist)”定时器(5)“保活(keepalive)”定时器(6)FIN_WAIT_2定时器(7)TIME_WAIT定时器

2017-06-20 07:46:07

URG(紧急位)与PSH(急迫位)

URG(紧急位):紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲的),设置为1时,首部中的紧急指针有效;为0时,紧急指针没有意义。PSH(急迫位):在一个交互程序中,当客户

2017-06-20 07:27:25

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!