摘要:
1.动态库的创建 在Linux平台下利用gcc命令: 在Windows下使用VS:(我用的是2013) 选择Visual C++下的Win32控制台应用程序,然后按下确定,你会进入如下画面: 下一步 按下完成后,你将你要生成动态库的内容放入 之后编译后就会在项目文件夹下的DEBUG文件夹里生成动态库 阅读全文
摘要:
项目描述: 已经和组员完成安全数据传输平台项目有好一会了,最近也比较忙,所以抽周末一上午的时间来写这篇博客。 首先先提我们的项目——安全数据传输平台。 一句话概括我们要解决的社会痛点:基于用户互相通信间上安全的需求,通过对称密钥给信息包上安全。 我们要解决的需求有:1.用户服务器与用户客户端一对一通 阅读全文
摘要:
安装配置samba来实现VS直接编译Linux上源码 Linux (Centos6.5 + win10) 开始安装,安装需要一会,安装结束后开始配置samba $ sudo yum install samba 进入root权限 # vim /etc/samba/smb.conf 在最后写入 [cod 阅读全文
摘要:
我们以百度为例子,当我在浏览器的中输入网址www.baidu.com时,发生了什么? 1.域名解析 要知道,数据传输时所识别的数据链路层封装的帧,并不是通过字符串“www.baidu.com”传输的,而是通过对放的MAC地址找到对方的(硬件地址),那么要想获得MAC地址,自然也是通过IP地址并通过A 阅读全文
摘要:
反向代理和正向代理都是在客户机和服务器传递数据中很重要的部分。 1.正向代理 正向代理的一个很经典的案例就是 科学上网。 当信息的发起者无法直接将信息递给信息的接受者时,发起者则不得不通过正向代理来作为数据传递的媒介。 2.反向代理 反向代理有个很好的代表,就是很多互联网公司服务器集群中的入口服务器 阅读全文
摘要:
上次说到还留有两个问题。 这次我们先处理第一问: 为什么解压到一半就停止的情况,问题在于我们解压部分的函数的循环判断。 我们知道,我们用哈夫曼码形成字符压入压缩文件,但是,哈夫曼码极有可能会组成11111111也就是-1,即很有可能达成循环终止条件造成退出,所以我们需要适当修改一下代码—— 我们要注 阅读全文
摘要:
有一点很需要注意: //**************我们需要记录我们压缩的字符数***********************//我们要去哪里找呢????//十分重要!!!!!!!!//在根节点里,因为根节点里放了所有字符的总个数!!! 那么现在还有两个问题: 1. //问题1//为什么文件读写中, 阅读全文
摘要:
何谓哈夫曼树?—— 百度百科:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 哈夫曼树的应用?—— 哈夫曼编码 与 哈夫曼译码。 哈夫曼树为基础的项 阅读全文
摘要:
声明:源码同《STL源码剖析》(侯捷) STL: C++标准的模板库,通用性高。 常见的数据结构封装。 提供常用的通用算法。 STL六大组件: 容器 算法 迭代器 仿函数(函数对象) 适配器 配置器 空间配置器的作用: 1.提高代码复用率,功能模块化。 2.减少内存碎片问题。 比如我们list是链式 阅读全文
摘要:
首先聊这个话题,我们先了解两个函数: 1.printf函数 2.write函数 一.首先了解缓冲区的概念,Linux下的缓冲区分为以下三种: 1.全缓冲,顾名思义,除非你主动刷新缓冲区,不然只能等到缓冲区满,才能刷新缓冲区。比如写入磁盘。 2.行缓冲,当遇到'\n'时,刷新缓冲区,比如 C库函数。 阅读全文