熟悉Windows的朋友应该知道,Windows下的视频格式转换软件与合并视频软件不计其数,刚接触Linux的朋友也许会抱怨Linux下没有强大的视频软件,完成视频播放、转化视频格式、合并视频等功能。今天我要给大家推荐一款Linux下的开源软件MPlayer以及它附带的视频工具mencoder。也许大家还不知道,Windows下的很多视频转换或合并工具都是基于mencoder的内核,再封装使其更人性化的UI界面生成的,所以可见MPlayer及mencoder的强大。
为了让应用程序在发不之后不需要重新编译而修改程序行为,我们引入了插件机制,如Linux下的“*.so”、Windows下的“.dll”以及Java中的“.jar”,这种机制让程序的框架趋于小巧、分工明细,完成详细设计文档以后,应用程序的功能接口已经约定完好,根据需要,可以将重要的功能接口封装成插件形式的函数库,根据插件的不同,安排不同的开发人员维护,这样也可以避免因为一群人共用一套代码文件造成同步问题。
文章分类 : C++, C++Primer笔记, 应用与编程
1、抛出指针通常是个坏主意,抛出指针要求在对用处理代码存在的任意地方存在指针所指向的对象。
2、不能不处理异常。异常是足够重要的、使程序不能继续正常执行的事件。如果找不到匹配的catch,程序就调用库函数terminate。
3、如果catch(…)与其他catch子句结合使用,它必须是最后一个,否则,任何跟在它后面的catch子句都将不能匹配。
文章分类 : C++, C++Primer笔记, 应用与编程
1、在C++中,模板是泛型编程的基础。模板是创建类或函数的蓝图或公式。
2、模板定义以关键字template开始,后接模板形参表,模板形参表是用尖括号括住的一个或多个模板形参的列表,形参之间以逗号分隔。
3、函数模板可以用与非模板函数一样的方式声明为inline。说明符放在模板形参表之后、返回类型之前,而不能放在关键词template之前。
今天又去电影院了,原计划看巨幕3D的《丁丁历险记》,因为档期原因巨幕厅被《鸿门宴》霸占了,我只好委曲求全选择了普通厅,因为时间及场次少的关系,两点前最后一场只剩下第一排最外侧的一个座位了,没得选,再次妥协。靠影幕这么近还是第一次,戴上3D眼镜后,整个影幕都很难被视野涵盖,真心别扭。电影开始以后,发现原来还是中文配音,我的期待值由此降了五成。
我想我对宝岛台湾的迷恋已经到了着魔的地步,有关台湾的一切消息都能勾起我的兴趣,一部《一页台北》就能让我的情绪由走出低估,对生活充满向往跟憧憬。今天在人人网上无意中看到一个去到国立台中教育大学的大陆交换生的主页,看到他Post在网上的台湾所见所闻,“害”我在他主页驻足了一个晚上,几百张照片一张都舍不得落下。人活着最重要的就是要有梦想、有动力。暂且不说其他梦想,在台北之行没有实现之前我的生活不乏梦想。
简易版SSL加密聊天程序分为服务端跟客服端,主要实现简易的加密聊天功能。服务端支持同时与多个客服端保持通信(连接),采用OpenSSL开源库实现加密功能,依赖客户端主动发起连接与对话方能回复客户端,能够检测到某个客户端断开连接。客户端指定IP与端口与服务端建立连接,需要主动发起对话方能等待服务端的回复。需要用到源文件有sslServer.c、sslClient、api.c和ssl.h,同时我们还需要利用openssl命令生成私有密钥文件privkey.pem以及证书(公有密钥)文件cacert.pem。
OpenSSL的API使用起来与我们常用的普通网络通信函数大同小异,主要分为初始化阶段、密钥载入及验证阶段、创建SSL(类似于文件描述符(套结字)创建函数socket)阶段、绑定套结字阶段(类似于bind函数)、请求建立连接阶段(客户端特有,类似于connect)、接受连接请求阶段(服务端特有,类似于accept函数)、数据收发阶段(类似于read和write)、结束连接阶段以及结束监听阶段(类似于close)。为了让SSL通信过程更加清晰明了,故自己用C语言封装了5个主要函数,让SSL通信流程为开发者快速掌握、一目了然。
不知道大家是否使用过网络数据抓包工具WireShark,Wireshark能够捕捉出入网卡的每一帧网络包,并能够详细列出网络包的源IP地址、目的IP地址、端口号、协议类型以及数据内容等信息。在数据(Data)一栏,Wireshark按照下图样式将数据(Data)按十六进制以及字符的形式打印出来。这样的打印信息清晰而明了,下面我们就来编写一个格式化数据输出函数hexdump吧。
普通的TCP通信无法保证数据的安全,它随时可能被第三方截获而泄漏通信双方之间的隐私,这显然是我们不希望看到的,尤其在跟用户名、密码、个人信息息息相关的通信过程(如网上银行交易、机密文件传输等等)尤其看重数据交互的隐秘性,所以我们常常用SSL协议来建立安全保密的通信,SSL协议能够保证交互双方的数据按密文方式传输,第三方在没有私钥的情况下几乎无法破解,从而到达保密的目的。究竟SSL是如何交互数据来确保安全的,很多人却不得而知,为了解答大家的疑惑,这里详细介绍一下SSL的交互过程。