08 2013 档案
摘要:定义新的操作指令,并将其组合到一起以便能够做一些有意义的事情,这就是编程工作的核心和灵魂。计算型思维:1,强调概念化,而非程序化。计算机科学不是计算机程序。像计算机科学家一样的思考,不只是说要编程,还需要能在多个抽象层次上就行思考2,它是人类(而非计算机)的一种思考方式。计算型思维是人类解决问题的一种途径,它并不会试图让人类像计算机那样去思考。3,不论何人,不论何处。当计算型思维充分融入到人们的工作学习当中,并且如常识般的从我们的注意力中消失时,它就变成了现实。操作系统是一种代表其他程序管理计算机硬件的特殊程序。解释器和虚拟机是一种运行于操作系统之上的程序,用于运行你的程序。这种分层构建的方式
        阅读全文
                
摘要:太乱了,只把自己写的代码传上来:#basicserver.pyimport sockethost = ''port = 51423s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)s.bind((host,port))print "Waiting for connections ..."s.listen(5)while True: clientsock,clientaddr = s.accept() 
        阅读全文
                
摘要:libpcap是开源库,主要完成数据包捕获功能下面是自己的测试例子:原理展示测试:#include #define BUFSIZE 1024int main(){ char error_content[PCAP_ERRBUF_SIZE]; struct pcap_pkthdr protocol_header; pcap_t *pcap_handle; struct bpf_program bpf_filter; char bpf_filter_string[] = ""; const u_char *packe...
        阅读全文
                
摘要:feof()函数是我们C语言中操作文件常见的函数,也是我们最容易出错的函数这个函数用来表示文件指针是否已经到了文件末尾的下一个位置。这个函数是通用的可以用在文本文件和二进制文件(EOF是文件结束的标志:(但是注意,在文本文件中,判断文本文件在文本文件结束符为不可见字符,值为26)(二进制中文件结束标志为-1,当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志)我们常见的问题时用fgets读文件,然后用fputs打印,这样就会在最后一行出现问题多输出一遍:我们看feof在源码中定义:#define _IOEOF 0x0010#define f...
        阅读全文
                
摘要:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧:int p;//这是一个普通的整型变量int *p; //首先从P 处开始,先与*结合,所以说明P 是一 //个指针,然后再与int 结合,说明指针所指向//的内容的类型为int 型.所以P 是一个返回整//型数据的指针int p[3]; //首先从P 处开始,先与[]结合,说明P 是一个数//组,然后与int 结合,说明数组里的元素是整//型的,所以P 是一个由整型数据组成的数组int *p[3]; //首先从P 处开始,先与[]结合,因为其优先级 //比*高,所以P 是一个数组,然后再与*结合,说明/
        阅读全文
                
摘要:组织和策略问题 第0条 不要拘泥于小节(又名:了解哪些东西不应该标准化) 第1条 在高警告级别干净利落地进行编译 第2条 使用自动构建系统 第3条 使用版本控制系统 第4条 在代码审查上投入设计风格 第5条 一个实体应该只有一个紧凑的职责 第6条 正确、简单和清晰第一 第7条 编程中应知道何时和如何考虑可伸缩性 第8条 不要进行不成熟的优化 第9条 不要进行不成熟的劣化 第10条 尽量减少全局和共享数据 第11条 隐藏信息 第12条 懂得何时和如何进行并发性编程 第13条 确保资源为对象所拥有。使用显式的RAII和智能指针编程风格 第14条 宁要编译时和连接时错误,也不要运行时错误 第15条 
        阅读全文
                
摘要:关于C标准1. 前言 本文从英文 C-FAQ (2004 年 7 月 3 日修订版) 翻译而来。本文的 中文版权为朱群英和孙云所有。 本文的内容可以自由用于个人目的,但 是不可以未经许可出版发行。 英文版权为 Steve Summit 所有,详情 见下面的英文版权说明。 The English version of this FAQ list is Copyright 1990-2004 by Steve Summit. Content from the book 《C Programming FAQs: Frequently Asked Questions》 is made avai...
        阅读全文
                
摘要:一、致读者1. 在编程序时,你是在为你针对某个问题的解决方案中的思想建立起一种具体表示。让程序的结构尽可能地直接反映这些思想:★.如果你能把“它”看成一个独立的概念,就把它做成一个类。★.如果你能把“它”看成一个独立的实体,就把它做成某个类的一个对象。★.如果两个类有共同的界面,将此界面做成一个抽象类。★.如果两个类的实现有某些显著的共同东西,将这些共性做成一个基类。★.如果一个类是一种对象的容器,将它做成一个模板。★.如果一个函数实现对某容器的一个算法,将它做成为对一族容器可用的模板函数。★.如果一组类、模板等相互之间有逻辑联系,将它们放进一个名字空间里。2. 在你定义一个并不是实现某个像矩
        阅读全文
                
摘要:1. 请谈谈C++书。没有,也不可能有一本书对于所有人来说都是最好的。不过对于那些真正的程序员来说,如果他喜欢从“经典风格”的书中间学习一些新的概念和技术,我推荐我的The C++ Programming Language, 1998年的第三版和特别版。那本书讲的是纯而又纯的C++,完全独立于平台和库(当然得讲到标准库)。该书面向那些有一定经验的程序员,帮助他们掌握C++,但不适合毫无经验的初学者入门,也不适合那些临时程序员品尝C++快餐。所以这本书的重点在于概念和技术,而且在完整性和精确性上下了不少功夫。如果你想知道为什么C++会变成今天的模样,我的另一本书The Design and Ev
        阅读全文
                
摘要:网络主要涉及几个重要概念:1,端口Linux 查看端口: cat /etc/services netstatWindows查看端口: netstat -anoLinux打开/关闭端口: linux系统下,81端口一般情况下是关闭的。开启81端口: iptables -I INPUT -i eth0 -p tcp --dport 81 -j ACCEPT iptables -I OUTPUT -o eth0 -p tcp --sport 81 -j ACCEPT关闭81端口: iptables -I INPUT -i eth0 -p tcp --dport 8...
        阅读全文
                
摘要:tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。
        阅读全文
                
摘要:开发测试驱动程序一般分为4步:1,指出需要的新特性。可以记录下来,然后为其编写一个测试2,编写特性的概要代码,这样程序就可以运行而没有任何语法等方面的错误,但是测试会失败。看到测试失败是很重要的,这样就能确定测试可以失败。如果测试代码中出现了错误,那么就有可能出现任何情况,测试都会成功,这样等于没测试任何东西。再强调一遍:在试图测试成功之前,先要看到它失败3,为特性的概要编写虚设代码,能满足测试要求就行。不用准确的实现功能,只要保证测试可以通过即可。这样一来就可以保证在开发的时候总是通过测试了,(除了第一次测试的时候)甚至在最初实现功能时亦是如此4,现在重写(或者重构)代码,这样它就会做自己应
        阅读全文
                
摘要:一直想学习一种脚本语言。现在主流的脚本语言,比较先接触的是python 刚开始了解了一下python,感觉挺适合自己的感觉,学习了一段时间,之中感觉,就好象C++一样,把面向对象和面向过程编程结合了起来,后来搁置了一段时间。 今天旧事重提:
        阅读全文
                
摘要:关于面向对象设计的书很多,但是有一些要点:> 将属于一类的的对象放在一起。如果一个函数操纵一个全局变量,那么两者最好都在类内作为特性和方法出现>不要让对象过于亲密。方法应只关心自己实例的特性。让其他实例管理自己的状态>要小心继承,尤其是多重继承。继承机制有时很有用,但也会在某些情况下让事情变得过于复杂。多继承难以正确的使用,更难以调试>简单就好。让你的方法小巧。一般来说,多数方法都应在30S内被读完(以及理解),尽量将代码行数控制在一页或者一屏之内。当考虑需要什么类以及类要有什么方法时,应该尝试 下面的方法。1, 写下问题的描述(程序要做什么?),把所有的名词、动词和形
        阅读全文
                
摘要:1,求有序数列中某个元素的个数思想:二分找上下界:int element_count(int * set, int len, int e){ int f, a, b, t; for(a = 0, b = len - 1; a > 1] > 1] e || set[len - 1] = 0 && set[k]==e ; k --); count += (mid-k-1); for(k = mid ; k e) max=mid-1; else min = mid+...
        阅读全文
                
摘要:传说中大数据处理的那些事曾是那样的困扰我们。往往是我们的面试杀手。其实面对大数据的运算就是划分,根据庖丁解牛的原理:方法有很多。但是最常用的是用数组和链表存储每一位数据。这两种方法各有优略。下面给大家讲述一种:数组的实现:大数据用一个int类型的数组存放,为了处理方便(其实char数组也可以),数组最高位存放大数据的长度加法:int bigplus(int a[],int b[],int c[]) //大整数加法 { int i,len; len=(a[0]>b[0]?a[0]:b[0]); //a[0] b[0]保存数组长度,len为较长的一个 for(i=0;i=1...
        阅读全文
                
摘要:谈谈正则表达式这个东西:我想作为一个程序员,正则表达式大家绝对不陌生。正则表达式好像一个有限则动机。主要作用是匹配,但是同时因为这个功能,我们可以扩展很多其他用法像很多语言都引人了正则表达式:java,C#等面向对象语言,更多的是脚本语言。另外我们常用的一些工具都引入了这个正则表达式:sed,awk,gawk,grep包括我们的C语言,它这种引入了一部分基础的正则表达式,我们一会会见到:正则表达式是用正则表达式引擎实现的。正则表达式引擎是解释正则表达式模式并使用这些模式进行文字或者命令匹配的底层软件学过编译原理的都知道DFA,和NFA的概念,这是我们编译过程中语法匹配的两大模式。他们的原理和正
        阅读全文
                
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号