`
wan_2004
  • 浏览: 138276 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表

Apache MINA 使用记录

    博客分类:
  • Java
 
1.Mina的结构   Mina的通信流程大致如上图所示,各个组件功能有:(1.)  IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监听是否有连接被建立。   (Mina底层使用JAVA NIO, 因此它是典型的使用Reactor模式架构的,采用事件驱动编程 , Mina运行用户自定义线程模型,可以是单线程、多线程、线程池等 ,      跟JAVA Socket不一样, Mina是非阻塞的Socket,它内部已经保证了对各个连接(session)的业务和数据的隔离,采用轮询机制为各个session分配CPU资源,     所以,你 ...
说明要匹配的字符是一个特殊字符、常量或者后者引用。(后引用重复上一次的匹配) \n 匹配换行符 \\ 匹配 \ \( 匹配 ( \) 匹配 ) ^ 匹配字符串的开头位置 如果A是字符串的第一个字符,^A 匹配 A $ 匹配字符串的末尾位置 如果B是字符串的最后一个字符,$B 匹配 B * 匹配前面的字符0次或多次 ba*rk可以匹配 brk、bark、baark等等 + 匹配前面的字符1次或多次 ba+rk可以匹配 bark、 ...
  Unix操作系统在突然断电后有可能导致系统的瘫痪。在这一点上,Unix操作系统不如微软的操作系统。如果发生断电事故的话,Windows操作系统在重新启动的时候会进行自动检测与恢复,而Unix 是不会的, 需要我们手动执行fsck命令去扫描恢复。       通常情况下,如果硬盘上的超级块和Inode块与内存中的副本不一致的话,则就有可能导致系统启动失败。如当突然断电时,硬盘中的超级块没有及时保存到硬 盘中,此时就会导致两个地方的超级块不一致,文件系统的完整性就会受到破坏。严重的话操作系统就会因此而瘫痪。不过在遇到这种文件系统错误方面的故障,往往不需要重新安装操作系统,而只需要执行fsck ...
android 上使用 qt 的开源项目是 necessitas 项目地址是 http://sourceforge.net/projects/necessitas/files/ 根据你的平台下载相应的necessitas QtCreator 安装(我下的 necessitas 0.3) 我这里用的Linux 下载好后安装,根据需要选择你要下的东西,比如 Ant ,Android SDK之类 (注:ant必须要 1.8.0以上 ,Android SDK 必须要有plarform-tools,如果不知道就不要选择 直接 默认即可。) 然后他自己下载组件安装(这个跟QtSDK的包管理器做的 ...
首先我们下载安装MS windows SDK 取得 MSVC9编译器。 去Orge3D.org下载 OGRE 1.7.4 SDK for Visual C++ .Net 2008 (32-bit) 这个版本 解压到任意目录中比如 E:\\Ogre 然后在QCreator中新建空项目
        使用QCreator  +Git 的时候因为QCreator 的自己生成项目文件在其他机器上面不能使用(编译步骤会还原成只剩qmake-make)。导致一些自定义编译步骤和一些脚本操作不在能用。现在,我们可以通过 qmake 的自定义 Makefile 文件输出达到这一目地。         比如我这边用了第三方编译好的静态库,编译时候拷贝了头文件和 LIBS += -L ./ -llibname 这样的选项,这时如果我们选择用 Shadow build 指定编译到其他目录去的时候,qmake生成make文件是不能找到-l中的的相关静态库文件的。这时 ...
Qt中有方便的信号和槽函数来完成我们各个类之间的调用。其中关于对象在线程中信号和槽的执行方式是值得瞧瞧的。 这里我做了一点实验。说明请看代码注解和qDebug输出 主窗口(这里介绍了各种连接信号方式) #include "widget.h" #include "ui_widget.h" #include "mythread.h" #include "obj.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui: ...
        在Qt中可以使用QDrag 来拖动操作Graphics各个元素,以此实现方便的拖动操作。 我们可以从QGraphicsItem 重载 mousePressEvent 来做开始拖动的操作,比如 void Item::mousePressEvent(QGraphicsSceneMouseEvent *event){ Qt::MouseButtons btn = event->buttons(); if(btn == Qt::LeftButton){ QDrag* drag = new QDrag(this->scene() ...
QObject 中没有提供一个拷贝构造函数和赋值操作符给外界使用,其实拷贝构造和赋值的操作都是已经声明了的,但是它们被使用了Q_DISABLE_COPY () 宏放在了private区域。因此所有继承自QObject的类都使用这个宏声明了他们的拷贝构造函数和赋值操作符为私有。 为什么要这样做?
qmake 常用命令: qmake -project //生成pro文件,自动检查c/c++程序文件    qmake -tp vc //根据pro文件生成vc的工程文件,qt commericial有一个绑定到vs的工具,可以在菜单栏直接打开    qmake -r xxx.pro "CONFIG+=debug" //递归生成makefi ...
        RAII 是指 C++ 语言中资源管理的一种方式,简单而又不会出什么岔子,英文全拼也说明了他的用法, 它是“ R esource A cquisition I s I nitialization ”的首字母缩写           首先让我们来明确资源的概念, ...
(1)Symbian^1(S60v3 FP1 设备 E71)除数变量类型 不能为int等类型,只能用qreal等浮点类型         若使用int类型变量为除数,会提示错误Could not start application: General OS-related error ,设备上则显示不支持此功能,不知道为什么-待研究。    
设置一下应答Header就行了   response.setHeader( "Content-Disposition ", "attachment; filename= "myNewName " , "UTF-8"));  
Qt中有qInstallMsgHandler 方法可以去定制消息发生后的回调函数,它回调同时还有qDebug的级别信息。这样我们可以方便把错误消息定制到自己的log文件里面 如下: #include <QtDebug> #include <QFile> #include <QTextStream> //回调函数实现debug信息到文件 void customMessageHandler(QtMsgType type, const char *msg) { QString txt; switch (type) { case QtDeb ...
交互式连接建立 交互式连接建立(Interactive Connectivity Establishment),一种综合性的NAT穿越的技术。 交互式连接建立是由IETF的MMUSIC工作组开发出来的一种framework,可整合各种NAT穿透技术,如STUN、TURN(Traversal Using Relay NAT,中继NAT实现的穿透)、RSIP(Realm Specific IP,特定域IP)等。该framework可以让SIP的客户端利用各种NAT穿透方式打穿远程的防火墙。 IETF 规格 Interactive Connectivity Establishment ( ...
Global site tag (gtag.js) - Google Analytics