2019-07-29 06:52
⁄ 工业·编程
⁄ 共 1726字
最近想读读Python源码,任何东西学习方法基本都是一样的,先从总体框架进行了解,再从自己侧重的方面逐步深入。
1. Python总体架构
左边是Python提供的大量的模块、库以及用户自定义的模块。比如在执行import os时,这个os就是Python内建的模块,当然用户还可以通过自定义模块来扩展Python系统。
右边是Python的运行时环境,包括对象/类型系统(Object/Type structures)、内存分配器(Memory Allocator)和运行时状态信息(Cu...
Python, 源码阅读全文
2019-07-28 05:48
⁄ 工业·编程
⁄ 共 2004字
尽管早期类型的网络***检测系统一直要追溯到20世纪80年代早期,但当Martin Roesch创建他的免费和开源IDS系统SNORT时,IDS的概念起飞了。由于其轻巧的设计和灵活的部署选项,Snort的用户群在接下来的几年中迅速增长。2001年,Martin Roesch创建了Sourcefire公司(2013年被思科收购),使用基于SNORT的商业IDS产品。SNORT的原始免费和开源版本仍然可用,目前广泛用于全球网络。与此同时,一些竞争对手在开源IDS领域取得了进展,其...
IDS, Snort, Suricata, 网络安全阅读全文
2019-07-27 06:40
⁄ 工业·编程
⁄ 共 1303字
sockaddr_in中的sin_family=PF_INET是什么意思?sin_family还有别的值吗?如果有都有什么?这些其他的值都是什么意思?
可以直接看定义所在的winsock.h,AF_INET是internet地址族,包括了tcp、udp什么的,
IPX、pipe什么的就不用AF_INET这个值
PF_INET与AF_INET究竟有什么不同?实际上,原来的想法是每个通信域(如PF_INET)可能对应多个协议(如AF_INET),而事 实上支持多个协议的通信域一直没有实现。因此,在linux内核中,AF...
网络编程阅读全文
2019-07-26 07:29
⁄ 工业·编程
⁄ 共 1391字
要解释这个问题,要先说一下操作系统。英文维基词条对操作系统的定义是:
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
翻译一下就是操作系统是一种管理计算机硬件、软件资源,并为计算机程序提供通用服务的一种系统软件。操作系统可以分为两部分:运行在内核模式的内核部...
GNU, linux阅读全文
2019-07-25 22:56
⁄ 工业·编程
⁄ 共 1155字
1. 头文件
windows下winsock.h或winsock2.h
linux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了)
2. 初始化
windows下需要用WSAStartup启动Ws2_32.lib,并且要用#pragma comment(lib,"Ws2_32")来告知编译器链接该lib。
linux下不需要
3. 关闭socket
windows下closesocket(...)
linux下close(...)
4. 类型
windows下SOCKET
linux下int(我喜欢用long...
区别, 网络编程阅读全文
2019-07-24 06:14
⁄ 工业·编程
⁄ 共 1482字
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。允许插入的一端为队尾(入队),允许删除(出队)的一端为队头。
顺序存储的队列是采用数组来实现的,但由于数组是静态的,在队列的出队和入队的操作下会出现整个队列后移逐渐占用下标加大位置而下标较小位置为空的“假溢出”现象,所以采用了将存储队列的数组看成是头尾相接的循环结构,即允许队列直接从数组的下标最大的位置延续到下标最小的位置。...
数据结构阅读全文
2019-07-23 06:11
⁄ 工业·编程
⁄ 共 1479字
C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!
C++在C的基础上增添类,C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或...
c++, 区别阅读全文
2019-07-22 06:09
⁄ 工业·编程
⁄ 共 5707字
c语言虽说经常和c++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是C++99标准的。C89就是在1989年制定的标准,如今最新的是C11和C++11标准。根据不同的标准,它们的功能也会有所不同,但是越新的版本支持的编译器越少,所以本文在讨论的时候使用的C语言标准是C89,C++标准是C++99.我们来介绍C语言和C++中那些不同的地方。
1.函数默认值
在C++中我们在定义或声明一个函数的时候,有时会...
c++, 区别阅读全文
2019-07-21 06:06
⁄ 工业·编程
⁄ 共 2383字
在学习了C语言和C++之后,这两者之间的区别我们需要仔细的捋一捋!
一、面向过程语言和面向对象语言
我们都知道C语言是面向过程语言,而C++是面向对象语言,说C和C++的区别,也就是在比较面向过程和面向对象的区别。
1.面向过程和面向对象的区别
(1)面向过程:面向过程编程就是分析出解决问题的步骤,然后把这些步骤一步一步的实现,使用的时候一个一个的依次调用就可以了。
(2)面向对象:面向对象编程就是把问题分解成各个...
c++, 区别阅读全文
2019-07-20 22:18
⁄ 工业·编程
⁄ 共 6184字
mmap基础概念
mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件...
mmap阅读全文